Windows 安装 MongoDB
首先前往 mongodb 官网下载安装包:https://www.mongodb.com/download-center/community
1588408081(1).jpg下载完成后,双击安装:
1588408335(1).jpg 1588408622(1).jpg 1588408822(1).jpg后面直接一直点 next
,最后点 install
安装就好了。
命令行方式启动 MongoDB
为了从命令提示符下启动 MongoDB 服务,你必须从 MongoDB 目录的 bin 目录中执行 mongod.exe 文件。
C:\Program Files\MongoDB\Server\4.2\bin> mongod --dbpath d:\mongodb\data\db
1588409489(1).jpg
如果执行后没有报错且光标在闪烁,那代表运行成功。
Windows 服务方式启动 MongoDB
通过执行 mongod.exe
,使用 --install
选项来安装服务,使用 --config
选项来指定配置文件。
C:\Program Files\MongoDB\Server\4.2\bin> mongod.exe --config "C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg" --install
如果没有任何报错,代表安装成功。
按 win+R
键打开运行窗口,输入 services.msc
即可快速打开Windows服务界面。
点击左上角 启动
服务,如果弹窗显示如下:
说明是系统环境变量没有设置好或前面安装服务出现问题,请排查后再启动。
如果左上角出现 停止
和 重启动
说明服务启动成功。
命令行启动和 Windows 服务启动任选一种方式即可,按自己的喜好来。
连接MongoDB
运行 MongoDB 服务的窗口不要关,另外打开一个命令行窗口,执行:
C:\Program Files\MongoDB\Server\4.2\bin> mongo
1588411347(1).jpg
如上图所示,即表示连接 MongoDB 成功。
当你进入 MongoDB 后台后,它默认会连接到 test 文档(数据库),你也可以执行:
> db
test
来显示当前连接的数据库。
执行 mongo
命令相当于打开了一个 MongoDB Shell,它是MongoDB自带的交互式 Javascript shell,用来对 MongoDB 进行操作和管理的交互式环境。
如果是 Windows 服务方式运行的 MongoDB,直接运行 cmd 在窗口中执行
mongo
即可连接 MongoDB,无需进入安装 MongoDB 的 bin 目录中。
MongoDB启用访问控制
安装的MongoDB有默认的4个数据库 admin
、local
、config
和 test
,它们都是没有任何安全验证的,因此我们要创建用户角色和密码来启用访问控制,确保数据安全。
创建用户管理员
在 MongoDB Shell 中执行:
> db.createUser({
user: "myUserAdmin", // 用户名自定义
pwd: passwordPrompt(), // 或明文密码*
roles: [{role: "userAdminAnyDatabase", db: "admin"}, "readWriteAnyDatabase"]
})
如果执行后出现 Successfully added user:
说明创建成功。
* pwd 为 passwordPrompt() 时,执行后窗口会出现
Enter password:
,键入的密码是不可见的。
启用访问控制后要重启 MongoDB 服务:
-
在 MongoDB Shell 中执行
db.adminCommand({ shutdown: 1 })
后关闭 MongoDB Shell 窗口; -
如果是命令行方式启动 MongoDB 服务,请添加
--auth
命令行选项。C:\Program Files\MongoDB\Server\4.2\bin> mongod --auth --dbpath d:\mongodb\data\db
-
如果是 Windows 服务方式启动 MongoDB,请在配置文件
mongod.cfg
中设置:security: // 记得将前面的'#'去掉 authorization: enabled
以用户管理员身份连接并进行身份验证
创建完用户管理员后,我们就要使用刚刚设置的用户和密码去连接 MongoDB 了。
验证身份的方式有两种,一是在连接的时候就进行身份验证,二是先连接然后使用 db.auth()
进行身份验证。
-
连接时验证身份:
1588416419(1).jpgC:\Program Files\MongoDB\Server\4.2\bin> mongo --authenticationDatabase "admin" -u "myUserAdmin" -p
输入正确的密码即可通过验证。
-
先连接后验证身份:
1588430385.jpg> use admin // 先切换数据库 > db.auth("myUserAdmin", passwordPrompt()) // 或明文密码
出现提示输入密码即可验证成功。
根据需要创建其他用户
一旦创建用户管理员,就可以用 db.createUser()
创建其他用户。
比如在 test
数据库中创建一个用户 myTester,该用户具有读写 test
数据库的权限,同时他还有读 produce
数据库的权限。
> use test
> db.createUser({
user: "myTester",
pwd: passwordPrompt(), // 或明文密码
roles: [
{ role: "readWrite", db: "test" },
{ role: "read", db: "produce" }
]
})
同样的,如果执行后出现 Successfully added user:
说明创建成功。
注意:虽然在此例子中是针对
test
数据库进行创建用户,但是该用户可以在其他数据库中扮演角色,即验证该用户身份的数据库不限制用户的权限。
其他常用命令
-
修改用户密码:
> use test > db.changeUserPassword("myTester", "abcd1234")
-
撤销用户的角色:
> use test > db.revokeRolesFromUser( "myTester", [{ role: "readWrite", db: "test" }] )
-
删除指定用户:
> use test > db.dropUser("myTester")
-
查看用户角色和权限:
> use test > db.getUser("myTester")
-
修改用户的角色:
> use test > db.updateUser( "myTester", { pwd: passwordPrompt(), roles: [ { role: "readWrite", db: "test" }, { role: "userAdmin", db: "test" } ] } )
注意:以上命令执行的前提是必须先切换到
admin
数据库进行身份验证后才能执行成功。
常用内置角色
分类 | 角色 | 说明 |
---|---|---|
数据库用户角色 |
read 、readWrite
|
提供读或读写某个数据库的权限 |
数据库管理角色 |
dbAdmin 、dbOwner 、userAdmin
|
提供用户在数据库上创建或修改用户的权限,提供管理执行任务的权限。 其中 dbOwner 角色是 readWrite 、dbAdmin 和 userAdmin 的权限集合 |
集群管理角色 |
clusterAdmin 、clusterManager 、clusterMonitor 、hostManager
|
提供对集群数据库的管理和操作权限 |
备份和还原角色 |
backup 、restore
|
提供备份和还原数据的权限 |
全数据库角色 |
readAnyDatabase 、readWriteAnyDatabase 、userAdminAnyDatabase 、dbAdminAnyDatabase
|
仅在 admin 数据库上可用,提供除 local 数据库外所有数据库的特权 |
超级用户角色 | root |
提供向任何用户分配任何数据库的任何权限的能力,超级用户权限 |
网友评论