MongoDB 簡介
MongoDB 是一個基于分布式文件存儲的數據庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。
MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。
1、修改啟動MongoDB時要求用戶驗證
加參數 --auth 即可。
現在我們把MongoDB服務刪除,再重新添加服務
2、創建用戶,并使用創建的用戶登錄
打開shell操作界面,默認test數據,再查看所有數據庫,發現報錯,因為沒有用戶驗證。
使用db.auth("user","pwd")進行用戶驗證。
user:用戶名
pwd:密碼
因為數據庫中沒有用戶,所以需要先使用無用戶驗證的方式啟動數據,在admin數據庫下新建用戶。
在當前數據庫下創建一個用戶
user:用戶名
pwd:密碼
roles:角色信息
[role:角色名, db:對指定數據庫的操作]
> db.createUser({user:"admin", pwd:"admin", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})Successfully added user: {"user" : "admin","roles" : [{"role" : "userAdminAnyDatabase","db" : "admin"}]}
在使用用戶驗證的方式啟動數據庫,在數據庫admin中,使用admin登錄
> db.auth("admin","admin")
1
狀態1表示驗證成功,0表示驗證失敗
創建用戶默認給當前使用的數據下創建用戶,
例如:當前使用的數據是admin,在admin數據下新建用戶
在admin數據庫下使用zyh登錄,可讀寫zyhdb的collection。
當在zyhdb下,無法使用zyh登錄,因為用戶zyh是在admin數據庫下。
3、查看當前數據下的用戶
show users 顯示當前數據庫下所有的用戶
使用有用戶管理權限的用戶登錄才能看見,例如使用zyh登錄后,執行會報錯;使用admin登錄后,顯示用戶
還可以使用db.getUsers()查看所有的用戶
使用db.getUser("user")查詢指定用戶的具體信息
4、修改用戶信息
user:用戶名
newpwd:新的密碼
db.updateUser("user", {roles:[{role:"", db:""}]})
修改用戶信息
追加角色
取消角色
5、刪除用戶
db.dropUser("user") 刪除指定用戶
db.dropAllUsers() 刪除當前數據下所有用戶
附:常用內置角色說明
數據庫用戶角色(每個數據庫都有的角色)
read 對non-system集合的讀取權限,以及以下system集合的讀取權限:system.indexes,system.js,system.namespaces
readWrite 對non-system集合的讀寫權限,以及system.js上的讀寫權限
數據庫管理角色(每個數據庫都包含的數據管理角色)
dbAdmin 完成管理性任務的權限,比如schema相關任務、索引、統計信息收集。不能用于管理用戶和角色
dbOwner 管理數據庫需要的所有權限。包含(readWrite、dbAdmin、userAdmin角色的權限)
userAdmin 在當前數據庫創建和修改角色和用戶的權限
集群管理角色
admin數據庫包含以下角色用于管理整個系統,而不是只針對單個數據庫
clusterAmin 提供集群管理的最大權限。包含了clusterManager、clusterMonitor、hostManager角色的權限
clusterManager 管理和監控集群,可以訪問local和config數據庫。
clusterMonitor 對集群的讀權限
hostManager 管理和健康servers
備份和還原角色
admin數據庫包含以下角色用于備份和還原數據
backup 備份權限
restore 還原權限
all-database roles
admin數據提供以下角色,對所有數據庫都有效。
readAnyDatabase 提供對所有數據庫的讀權限
readWriteAnyDatabase 提供對所有數據庫的寫權限
userAdminAnyDatabase 提供對所有數據庫用戶的管理權限
dbAdminAnyDatabase 對所有數據庫的dbAdmin權限
超級角色
角色 說明
root 擁有最高權限
另外角色也可以自定義設置
以上內容是小編給大家介紹的MongoDB快速入門筆記(七)MongoDB的用戶管理操作的相關知識,希望對大家有所幫助!
新聞熱點
疑難解答