mongodb用戶管理

1.創建管理賬號

mongodb安裝好後第一次進入是不需要密碼的,也沒有任何用戶。 在安裝MongoDB之後,先關閉auth認證,啓動服務端:
在這裏插入圖片描述
現在需要創建一個帳號,該賬號需要有grant權限,即:賬號管理的授權權限。注意一點,帳號是跟着庫走的,所以在指定庫裏授權,必須也在指定庫裏驗證(auth)。

添加管理用戶:

   db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

在這裏插入圖片描述
user:用戶名

pwd:密碼

roles:指定用戶的角色,可以用一個空數組給新用戶設定空角色;在roles字段,可以指定內置角色和用戶定義的角色。role裏的角色可以選:
Built-In Roles(內置角色):
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root
// 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system
具體角色:

Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限。

剛建立了 userAdminAnyDatabase 角色,用來管理用戶,可以通過這個角色來創建、刪除用戶。

2.開啓auth參數,認證通過後才能訪問數據庫
在這裏插入圖片描述
3.數據庫創建用戶

db.createUser(
  {
    user: "db",
    pwd: "jp_123",
    roles: [ { role: "readWrite", db: "wx_applet" } ]
  }
)

在這裏插入圖片描述
在我們自己的數據庫裏創建用戶,此時沒有驗證,導致沒權限。

db.auth(“db”,“jp_123”) 認證通過後可以操作數據庫。

show collections 可以查看集合。

查看用戶:
在這裏插入圖片描述
4.用戶名和密碼驗證:

./mongo -u db -p jp_123 127.0.0.1:27017/wx_applet
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章