mongodb 權限設置

mongodb安裝成功後,成功啟動後,用root帳號登錄。(此次啟動的配置中 auth=false 可以直接使用工具登錄 ,同時 配置中 127.0.0.1,所以用局域網登錄得借用ssh)

工具 : NoSQL Manager for MongoDB

mongodb 權限設置

mongodb 權限設置

登錄成功後,可以看到 admin的庫,右鍵點開shell,創建用戶admin

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

user->用戶名,pwd->密碼,role->角色,db->指定所屬的數據

role可以有以下選項:

1. 數據庫用戶角色:read、readWrite;

2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;

3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

4. 備份恢復角色:backup、restore;

5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

6. 超級用戶角色:root

7. 內部角色:__system

具體的說明如下:

Read:允許用戶讀取指定數據庫

readWrite:允許用戶讀寫指定數據庫

dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile

userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裡創建、刪除和管理用戶

clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。

readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限

readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限

userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限

dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。

root:只在admin數據庫中可用。超級賬號,超級權限

我們創建一個 abc的用戶,只對abc的數據庫有讀寫權限。

1.創建abc,數據庫

mongodb 權限設置

mongodb 權限設置

2.在shell中使用命令如下:

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

創建成功後,都會有返回狀態,如下圖

mongodb 權限設置

接下來,我們使用abc的用戶來登錄,同時修改mongodb的配置文件中的 auth=true,打開用戶認證。

修改配置文件,需要重啟mongodb,具體命令

# ps -ef|grep mong

# kill -9 1450(具體查看mongo的pid)

mongodb 權限設置

# bin/mongod -f conf/mongo.conf

利用工具,用abc來登錄mongo

mongodb 權限設置

成功連接後,可以使用mongo的基本語句;

 db.user.insert({"name":1111,"pwd":2222})

刷新 Collections 後,就可以看到user這個collection(相當於mysql的表。)mongo,是可以在不創建user這個collection的時候,直接使用添加語句。


分享到:


相關文章: