標籤:mongodb 使用者驗證
簡介:由於mongodb資料的使用者管理是基於單個庫的管理,他的管理原則大概如下
如果驗證了admin庫的賬戶,那麼所有的庫都可以訪問
如果驗證了非admin庫的賬戶,那麼此許可權只能訪問當前庫下的資料
步驟建議:
如果要對資料庫進行賬戶設定,最好我們首先不要開啟資料庫驗證,然後進入admin庫,建立密碼
退出添加 -auth 驗證重啟mongodb然後使用admin庫的賬戶進行驗證,如果通過那麼進入其它庫進行賬戶建立,完成後重新登入進行驗證
驗證如下:
啟動mongod
mongod.exe --dbpath=E:\mongodb\db -auth -auth 開啟使用者驗證,如果啟動沒有添加此參數那麼使用者驗證將失敗
首先進入admin庫
use admin
查看當前資料的使用者
show collections 能返回兩個表
添加admin庫的sa賬戶密碼為sa
db.addUser(‘sa‘,‘sa‘)
ctrl+c 退出當前登入
重新登入並進入admin庫和test庫檢查是否能夠查詢當前表
> use adminswitched to db admin> show collectionsMon Oct 13 17:11:01 uncaught exception: error: { "$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1", "code" : 10057}> use testswitched to db admin> show collectionsMon Oct 13 17:13:51 uncaught exception: error: { "$err" : "unauthorized db:test lock type:-1 client:127.0.0.1", "code" : 10057}
驗證admin庫裡面的sa賬戶是否能夠查看admin庫和test庫的資訊
> db.auth(‘sa‘,‘sa‘)1> show collectionssystem.indexessystem.users> use testswitched to db test> show collectionssystem.indexessystem.users>
進入test庫並建立使用者test密碼test
> use testswitched to db test> db.addUser(‘test‘,‘test‘){ "updatedExisting" : true, "n" : 1, "connectionId" : 10, "err" : null, "ok" : 1}{ "_id" : ObjectId("543b80be1d60b11044c2fc59"), "user" : "test", "readOnly" : false, "pwd" : "a6de521abefc2fed4f5876855a3484f5"}>
ctrl+c退出重新登入,驗證test賬戶能夠訪問test庫和admin庫
> db.auth(‘test‘,‘test‘)1> show collectionssystem.indexessystem.users> use adminswitched to db admin> show collectionsMon Oct 13 17:21:06 uncaught exception: error: { "$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1", "code" : 10057}>
驗證admin庫的admin帳號,看是否能查看admin庫的資訊
> use adminswitched to db admin> db.auth(‘sa‘,‘sa‘)1> show collectionssystem.indexessystem.users>
PS:當驗證使用者的時候,如果返回1證明有此使用者,如果返回0證明沒有此使用者 如:
> use adminswitched to db admin> db.auth(‘sa‘,‘sa‘)1
本文出自 “精忠報國” 部落格,請務必保留此出處http://xinsir.blog.51cto.com/5038915/1563383
mongodb的使用者管理