创建管理员账户:
1.登录
1
2 1[root@MongoDB ~]# mongo
2
2.切换到admin数据库创建账户
1
2
3 1> use admin
2switched to db admin
3
3.用户创建用户方法
db.createUser()
role用于指定哪个用户,db指定哪个数据库
1
2
3
4
5
6
7
8
9
10
11 1> db.createUser({user:"admin",pwd:"123456",roles:[{ role:"root", db:"admin" } ] })
2Successfully added user: {
3 "user" : "admin",
4 "roles" : [
5 {
6 "role" : "root",
7 "db" : "admin"
8 }
9 ]
10}
11
4.退出MongoDB命名行
1
2
3 1> quit()
2[root@MongoDB ~]#
3
或者使用exit 退出MongoDB
5.启用权限管理
修改MongoDB安装目录中的配置文件 /etc/mongod.conf
1
2 1[root@MongoDB ~]# vim /etc/mongod.conf
2
将#security:的注释去掉,然后添加authorization: enabled #注意authorization前面要有两个空格

1
2
3 1security:
2 authorization: enabled
3
重启MongoDB
1
2 1[root@MongoDB ~]# systemctl restart mongod
2
1
2 1使用创建的用户登录MongoDB
2
1
2 1[root@MongoDB ~]# mongo --host 127.0.0.1 --port 27017 -u "admin" -p "123456" --authenticationDatabase "admin"
2
–host 指定登录的主机,
–port 指定登录端口
-u 指定登录用户
-p 指定用户登录密码
— authenticationDatabase 指定认证的数据库
如何使用/查看/删除用户:
1
2 1use admin
2
用于列出MongoDB 关联这个数据库的所有的用户,需要先切换到指定数据库 例如:需要先切换到admin数据库
db.system.users.find()
1
2
3 1> db.system.users.find()
2{ "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "1pm1kS2JTR/iLon8pY1Vkg==", "storedKey" : "k16n9/CH3K/spAIl9yNcl7xtw4k=", "serverKey" : "3zbHiGF13FicptAnNYQOMin9Jso=" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "3SXNHNIPsGAdzCE5rkw9O+RIgGa8Ui8T41g3cA==", "storedKey" : "jF2hv4p9LWqGba95+5zfLLPC62jL7irlF66XOFvCbUo=", "serverKey" : "2gWAdyuBJOdN6v2EfLwiADAarZOJ0R3xHX5ttn0zOkE=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
3
1
2 1用于列出当前库下的所有用户
2
show users
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 1> show users
2{
3 "_id" : "admin.admin",
4 "user" : "admin",
5 "db" : "admin",
6 "roles" : [
7 {
8 "role" : "root",
9 "db" : "admin"
10 }
11 ],
12 "mechanisms" : [
13 "SCRAM-SHA-1",
14 "SCRAM-SHA-256"
15 ]
16}
17
用户删除当前库下的指定的用户
1
2 1db.dropUser()
2
1
2
3 1> db.dropUser('admin')
2true
3
返回true 删除成功