Mongodb
在 mongodb 上創建啟用身份驗證的數據庫
我可以為我的“user1”使用特定角色創建數據庫。我已經測試並且使用者“test1”無法在啟用模式授權下創建數據庫。如何創建數據庫?我創建了一個使用者“user1”,它只能訪問這個數據庫“db1”。我可以擁有與 SQL Server 中相同的具有創建新數據庫的權限的使用者“user1”嗎?我可能(完全)錯了,但我想要一個關於這個案例的具體解釋。感謝您的任何幫助和指導。:)
真的很難理解你的問題。
也許您的問題是這樣的:在 MongoDB 中,您有不同的數據庫。Database
admin
和是預定義的系統數據庫config
。local
使用者和角色是在數據庫中創建的,我認為這對於 MongoDB 來說是一種非常獨特的行為。您可以在任何數據庫中創建使用者和角色,但是
admin
數據庫應該是通用的。該
admin
數據庫包括管理整個系統的角色,而不僅僅是一個數據庫。這些角色主要與副本集和分片集群管理功能有關。在其他數據庫中創建的角色
admin
只能包含適用於其數據庫的權限,並且只能從其數據庫中的其他角色繼承。在數據庫中創建的角色
admin
可以包括適用於任何數據庫或集群資源的權限,並且可以從其他數據庫以及數據庫中的角色繼承admin
。所以,我假設
user1
不是在admin
數據庫中創建的。很可能您創建了它test
的數據庫,這是預設設置。那麼上述限制適用。在數據庫中創建使用者
admin
並授予所需角色:use admin db.runCommand( { createUser: "user1", pwd: "secret", roles: [ "readWrite" ] } )
或者
db.getSiblingDB("admin").runCommand(...)
該使用者可以創建任何數據庫,並且可以寫入任何數據庫。
每個數據庫都提供內置角色
read
,readWrite
,dbOwner
,dbAdmin
,userAdmin
.也許你正在尋找這個:
use admin db.runCommand( { createUser: "user1", pwd: "secret", roles: [ { role: "dbOwner", db: "db1" } ] } )
dbOwner
此命令創建數據庫的使用者和授權db1
。他可以寫入數據庫db1
,不能創建或讀取任何其他數據庫。