mongodb創建用戶

轉載自:http://bbs.51cto.com/thread-1146654-1.html

定義:

創建一個數據庫新用戶用db.createUser()方法,如果用戶存在則返回一個用戶重複錯誤。


語法:
db.createUser(user, writeConcern)
    user這個文檔創建關於用戶的身份認證和訪問信息;
    writeConcern這個文檔描述保證MongoDB提供寫操作的成功報告。

· user文檔,定義了用戶的以下形式:
{ user: "<name>",
  pwd: "<cleartext password>",
  customData: { <any information> },
  roles: [
    { role: "<role>", db: "<database>" } | "<role>",
    ...
  ]
}

user文檔字段介紹:
    user字段,爲新用戶的名字;
    pwd字段,用戶的密碼;
    cusomData字段,爲任意內容,例如可以爲用戶全名介紹;
    roles字段,指定用戶的角色,可以用一個空數組給新用戶設定空角色;
    在roles字段,可以指定內置角色和用戶定義的角色。

    Built-In Roles(內置角色):
    1. 數據庫用戶角色:read、readWrite;
    2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 備份恢復角色:backup、restore;
    5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6. 超級用戶角色:root  

    // 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
    7. 內部角色:__system
    PS:關於每個角色所擁有的操作權限可以點擊上面的內置角色鏈接查看詳情。

· writeConcern文檔(官方說明
    w選項:允許的值分別是 1、0、大於1的值、"majority"、<tag set>;
    j選項:確保mongod實例寫數據到磁盤上的journal(日誌),這可以確保mongd以外關閉不會丟失數據。設置true啓用。
    wtimeout:指定一個時間限制,以毫秒爲單位。wtimeout只適用於w值大於1。

例如:在products數據庫創建用戶accountAdmin01,並給該用戶admin數據庫上clusterAdmin和readAnyDatabase的角色,products數據庫上readWrite角色。
use products
db.createUser( { "user" : "accountAdmin01",
                 "pwd": "cleartext password",
                 "customData" : { employeeId: 12345 },
                 "roles" : [ { role: "clusterAdmin", db: "admin" },
                             { role: "readAnyDatabase", db: "admin" },
                             "readWrite"
                             ] },
               { w: "majority" , wtimeout: 5000 } )

驗證:
mongo -u accountAdmin01 -p yourpassward --authenticationDatabase products
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章