MongoDB開啟權限認證的方法步驟詳解


在安裝MongoDB之后,先關閉auth認證,啟動服務端,創建一個帳號,該賬號需要有grant權限,即:賬號管理的授權權限。注意一點,帳號是跟着庫走的,所以在指定庫里授權,必須也在指定庫里驗證(auth)。
添加管理用戶:
use admin 
db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
user:用戶名
pwd:密碼
roles:指定用戶的角色,可以用一個空數組給新用戶設定空角色;在roles字段,可以指定內置角色和用戶定義的角色。role里的角色可以選:
具體角色:
Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫里創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限。
剛建立了 userAdminAnyDatabase 角色,用來管理用戶,可以通過這個角色來創建、刪除用戶。

開啟--auth參數,認證通過后才能訪問數據庫
db.createUser({user: "db",pwd: "123456",roles: [ { role: "readWrite", db: "test" } ] })
在我們自己的數據庫里創建用戶,此時沒有驗證,導致沒權限。
db.auth("db","123456")  認證通過后可以操作數據庫。
./mongo -u db -p 123456 127.0.0.1:27017/test
C#示例:
using MongoDB.Bson;
using MongoDB.Driver;
// ...
var client = new MongoClient(
    "mongodb+srv://<username>:<password>@<cluster-address>/test?w=majority"
);
var database = client.GetDatabase("test");

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM