一、超級管理員創建及開啟登錄驗證 如果MongoDB要開啟登錄驗證,必須在開啟登錄驗證之前先創建好超級管理員,否則無法登錄資料庫! 例如,創建一個超級管理員admin,關聯給admin資料庫,角色設置為root(超級管理員) 首先,進入到目標庫admin,use admin 然後,輸入指令 db.c ...
一、超級管理員創建及開啟登錄驗證
如果MongoDB要開啟登錄驗證,必須在開啟登錄驗證之前先創建好超級管理員,否則無法登錄資料庫!
例如,創建一個超級管理員admin,關聯給admin資料庫,角色設置為root(超級管理員)
首先,進入到目標庫admin,use admin
然後,輸入指令 db.createUser({user:"admin",pwd:"123456",roles:["root"]})
創建完管理員用戶之後,就可以開啟登錄驗證了,進入配置文件c:\MongoDB\config\mongodb.conf,
添加 auth=true即可開啟登錄驗證,如果要開啟遠程登錄,需要添加 bind_ip=0.0.0.0,修改寫重啟MongoDB服務即可。
開啟服務之後,就可以通過管理員登錄了,
二、添加資料庫普通用戶
如果要給指定的資料庫添加登錄用戶,先要切換到資料庫,再創建用戶,用戶需要綁定資料庫,還有角色
常用到的角色介紹:
read:允許用戶讀取指定資料庫
readWrite:允許用戶讀寫指定資料庫
dbAdmin:允許用戶在指定資料庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定資料庫里創建、刪除和管理用戶
clusterAdmin:只在admin資料庫中可用,賦予用戶所有分片和複製集相關函數的管理許可權。
readAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的讀許可權
readWriteAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的讀寫許可權
userAdminAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的userAdmin許可權
dbAdminAnyDatabase:只在admin資料庫中可用,賦予用戶所有資料庫的dbAdmin許可權。
root:只在admin資料庫中可用。超級賬號,超級許可權
例如創建test用戶,具有對test資料庫讀寫許可權
首先,進入到目標庫test,use test
然後,輸入指令 db.createUser({user:"test",pwd:"123456",roles:[{role:"readWrite",db:"test"}]})
三、查看所有用戶
用超級管理員登錄切換到admin資料庫,通過指令db.system.users.find()查看所有用戶所有信息,
通過指令db.system.users.find({},{user:1,roles:1,_id:0})查看所有用戶簡要信息
四、修改用戶
4.1修改用戶密碼
例如,修改用戶test的密碼為123
首先,進入目標庫test,use test
然後,輸入指令 db.changeUserPassword("test","123")
4.2修改用戶角色
添加用戶角色
例如,給用戶test添加readWrite許可權
首先,進入目標庫test,use test
然後,輸入指令 db.grantRolesToUser("test",[{role:"readWrite",db:"test"}])
刪除用戶角色
例如,刪除用戶test的readWrite許可權
首先,進入目標庫test,use test
然後,輸入指令 db.revokeRolesFromUser("test",[{role:"readWrite",db:"test"}])
五、刪除用戶
例如,刪除用戶test
首先,進入到目標庫test,use test
然後,輸入指令 db.dropUser("test")