一、CRUD用户:
查看数据库的所有用户
use admin
db.system.users.find()
为当前数据库增加指定用户
老版本的addUser方法:
use ichpms 指定ichpms数据库
db.addUser("root","123456"); #创建读写用户root
db.addUser("zhangsan","123456",true);#创建只读用户zhangsan
新版本的createUser方法:
eg1:
use admin ;
db.createUser({
user:'administrator',
pwd:'aaaaaa',
roles:["root"]
});
在admin数据库中添加用户"administrator" 并授权“root”角色
eg2:
use test
db.createUser({
user:'u1',
pwd:'aaaaaa',
roles:['readWrite']
});
在test数据库中添加用户"u1",并授权"readWrite"角色
eg3:
use test
db.createUser({
user:'u2',
pwd:'aaaaaa',
roles:[ { role: "read", db: "ichpms" },'readWrite']
});
在test数据库中添加用户"u2",授权”readWrite“角色,并授权对”ichpms“的”read“角色
为当前数据库删除指定用户
db.dropUser("zhangsan")
注意:不能在非A数据库中删除A数据库的用户。理解:可能AB两个数据库中各有一个u1的用户,如果不进入数据库中删除那就不知道是删除的是哪个数据库了。
修改当前数据库指定用户的密码
db.changeUserPassword("root3", "bbbbbb")
修改当前数据库指定用户
?
收回指定用户的角色
?
授权指定用户的角色
?
根据用户名称查看用户对应的角色
db.getUser("root3"); #"root3" 用户名称
二、角色
MongoDB数据库中的所有内置角色。
https://docs.mongodb.com/manual/reference/built-in-roles/index.html
根据角色名称查看指定角色对应的权限
db.getRole("readWrite",{showPrivileges:true}); #"readWrite" 角色名称
创建角色
?
三、安全认证
step1:创建用户:参考上面
step2:安全检查:auth=true #开启安全检查 false 或者不配置的时候表示关闭安全检查。
服务器启动的时候要开启安全检查
step3:客户端连接:mongo
step4:连接到指定数据库 use db //切换到db数据库
step5:用户登录:db.auth("root","aaaaaa");
step6:用户注销:db.logout();