1. 程式人生 > >mongodb主從使用者許可權管理

mongodb主從使用者許可權管理

1、建立mongo的管理使用者  #mongo   >use admin >db.createUser({user:"mongodbuser",pwd:"mongo123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})   //此使用者只對使用者管理有許可權。對其他資料庫無操作許可權 2、關閉mongo,在mongo啟動指令碼後加上引數--auth 重啟mongo 3、 #mongo >show dbs rs1:PRIMARY> show dbs         //未認證無法檢視資料庫 2016-05-16T17:24:48.174+0800 E QUERY    Error: listDatabases failed:{         "ok" : 0,         "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",         "code" : 13 }     at Error (<anonymous>)     at Mongo.getDBs (src/mongo/shell/mongo.js:47:15)     at shellHelper.show (src/mongo/shell/utils.js:630:33)     at shellHelper (src/mongo/shell/utils.js:524:36)     at (shellhelp2):1:1 at src/mongo/shell/mongo.js:47 >use admin >db.auth('mongodbuser','mongo123456') >show dbs admin    0.078GB local   20.068GB test     0.078GB wechat   0.078GB 現在可以給相應的資料庫新增相應的使用者了 >use wechat >db.createUser({user:"testr",pwd:"123456",roles:[{role:"read",db:"wechat"}]})         //給與使用者testr,在資料庫wechat中只讀得許可權 >db.createUser({user:"testrw",pwd:"123456",roles:[{role:"readWrite",db:"wechat"}]}) //給與使用者testrw,在資料庫wechat中只讀寫得許可權 要對每個資料庫都有讀寫許可權可以建立一下使用者,role為root的超級使用者 >db.createUser({user:"zwli",pwd:"$$lw123456",roles:[{role:"root",db:"admin"}]})  //test 指令碼 db.abc.insert({"a":"1","b":"2"})  db.artich.insert({"name":"1"})  db.artich.find() 如忘記密碼可去掉啟動命令後的--auth引數,重新啟動。這樣就不用使用者驗證了 刪除使用者:db.dropUsers("username") 獲取資料庫所有使用者許可權:db.getUsers()或show users 獲得某個使用者的許可權資訊: db.getUser("username") 建立角色: db.createRole() 更新角色: db.updateRole() 刪除角色: db.dropRole() 獲得某個角色資訊: db.getRole() 刪除所有使用者: db.dropAllUsers() 將一個角色賦予給使用者: db.grantRolesToUser() 撤銷某個使用者的某個角色許可權: db.revokeRolesFromUser() 更改密碼: db.changeUserPassword()
給mongo主從配置許可權管理 主從配置好後 進入主節點 use admin db.createUser({user:"mongomanagement",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]}) db.createUser({user:"mongomonitor",pwd:"123456",roles:[{role:"clusterMonitor",db:"admin"}]}) db.grantRolesToUser("mongomanagement",[{role:"readWriteAnyDatabase",db:'admin'}]) db.grantRolesToUser("mongomanagement",[{role:"root",db:'admin'}]) 關閉mongo主從服務,生成mongo驗證檔案 openssl rand -base64 741 > mongodb-keyfile  許可權設定成600 chmod 600   mongodb-keyfile 然後啟動命令加上--auth --KeyFile mongodb-keyfile 命令為 /home/apps/mongodb/bin/mongod --config /home/apps/mongodb/master.conf --httpinterface --rest --auth --keyFile /home/apps/mongodb/mongodb-keyfile