mongodb 學習筆記 05,mongodb學習筆記
啟用認證
mongod 啟動預設沒有開啟許可權,你需要指定 –auth 啟動,或者在設定檔中設定security.authorization 為 “enabled”
建立使用者
db.createUser(user, writeConcern)
- 文檔 http://docs.mongodb.org/manual/reference/method/db.createUser/#db.createUser
user格式
{ user: "<name>", pwd: "<cleartext password>", customData: { <any information> }, roles: [ { role: "<role>", db: "<database>" } | "<role>", ... ]}
writeConcern:
例如 {w: “majority”, j: true, wtimeout: 5000}
- w選項:允許的值分別是 1、0、大於1的值、”majority”、;
- j選項:確保mongod執行個體寫資料到磁碟上的journal(日誌),這可以確保mongd以外關閉不會遺失資料。設定true啟用。
- wtimeout:指定一個時間限制,以毫秒為單位。wtimeout只適用於w值大於1。
Built-In Roles(內建角色):
- 資料庫使用者角色:read、readWrite;
- 資料庫管理角色:dbAdmin、dbOwner、userAdmin;
- 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 備份恢複角色:backup、restore;
- 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超級使用者角色:root
// 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
- 內部角色:__system
creatUser例子
建立超級管理員
use admindb.createUser({ user:"username", pwd:"password", roles:["root"]})
在products資料庫建立accountAdmin01使用者,擁有readWrite許可權,對admin資料庫擁有clusterAdmin跟readAnyDatabase許可權
use productsdb.createUser( { "user" : "accountAdmin01", "pwd": "cleartext password", "customData" : { employeeId: 12345 }, "roles" : [ { role: "clusterAdmin", db: "admin" }, { role: "readAnyDatabase", db: "admin" }, "readWrite" ] }, { w: "majority" , wtimeout: 5000 } )
登入
use collectionNamedb.auth("username",'password")
查看使用者
show users
刪除使用者
db.dropUser("username")
更改使用者密碼
db.changeUserPassword("username","password")
更新使用者
db.createUser(user, writeConcern)
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。