MongoDB用户权限管理

前提条件:具备管理员账号

注意:MongoDB原生特性:账号都在特定的库里认证,不像mysql使用全局认证,也就是说登录时mysql不需指定认证的库,而mongo的账号在特定的库中,admin库或者普通库,因此登录时需指定--authenticationDatabase <dbname>  指定创建User的数据库;在特定的数据库中创建User,该DB就是User的authentication database。在连接mongo时,使用参数 --authenticationDatabase,会认证 -u 和 -p 参数指定的账户和密码。如果没有指定验证数据库,mongo使用连接字符串中指定的DB作为验证数据块。

---

查看所有用户

use admin  /使用admin库

show users

---

创建只读用户

use admin  /使用admin库

db.createUser({user:'readonly',pwd:'123456',roles:['readAnyDatabase']})  /创建具有所有库只读的readonly账号。

---

创建读写用户

use admin  /使用admin库

db.createUser({user:'rw',pwd:'123456',roles:['readWriteAnyDatabase']})  /创建具有所有库读写的账号。

---

创建单库只读,读写用户

use admin  /使用admin库,也可以在use 单库,这样登录时需使用该库做认证

db.createUser({user: "readonly2", pwd: "123456", roles: [{ role: "readWrite", db: "account_openid_0" }]})  /创建单库只读账号

db.createUser({user: "readonly3", pwd: "123456", roles: [{ role: "read", db: "cash_guild_room_flow" }]})  /创建单库读写账号

---

更新用户权限

use admin  /使用admin库

db.updateUser("readonly2",{roles:[ {role:"read",db:"testDB"} ]})  /修改单库权限为只读

---

增加用户权限

use admin  /使用admin库

db.grantRolesToUser("rw", [{role:"readWrite", db:"audit_admin_op_log"}])   /给rw用户增加单库读写权限

 

posted @ 2020-09-30 15:26  Normanlin  阅读(212)  评论(0编辑  收藏  举报