mongodb在2.4最新版本中對用戶權限管理做了全新的調整,把權限細化了,增強了安全性,越來越像mysql的權限管理了。廢話少說,我們來詳細看下吧
1. 創建一個超級用戶
- use admin
- db.createUser(
- {
- user: "adminUserName",
- pwd: "userPassword",
- roles:
- [
- {
- roles: "userAdminAnyDatabase",
- db: "admin"
- }
- ]
- }
- )
超級用戶的role有兩種,userAdmin或者userAdminAnyDatabase(比前一種多加了對所有數據庫的訪問)。
db是指定數據庫的名字,admin是管理數據庫。
2. 用新創建的用戶登錄
- mongo --host xxx -u adminUserName -p userPassword --authenticationDatabase admin
3. 查看當前用戶的權限
- db.runCommand(
- {
- usersInfo:"userName",
- showPrivileges:true
- }
- )
4. 創建一般用戶,也是用createUser
- use db01
- db.createUser(
- {
- user:"oneUser",
- pwd:"12345",
- roles:[
- {role:"read",db:"db01"},
- {role:"read",db:"db02"},
- {role:"read",db:"db03"}
- ]
- }
- )
5. 創建一個不受訪問限制的超級用戶
- use admin
- db.createUser(
- {
- user:"superuser",
- pwd:"pwd",
- roles:["root"]
- }
- )
6. 修改密碼
- use admin
- db.changeUserPassword("username", "xxx")
7. 查看用戶信息
- db.runCommand({usersInfo:"userName"})
8. 修改密碼和用戶信息
- db.runCommand(
- {
- updateUser:"username",
- pwd:"xxx",
- customData:{title:"xxx"}
- }
- )
注:
1. 和用戶管理相關的操作基本都要在admin數據庫下運行,要先use admin;
2. 如果在某個單一的數據庫下,那只能對當前數據庫的權限進行操作;
3. db.addUser是老版本的操作,現在版本也還能繼續使用,創建出來的user是帶有root role的超級管理員。
|
新聞熱點
疑難解答