在安裝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");