在 CentOS 下,MongoDB 的權限設置主要通過用戶角色和角色權限來實現
首先,您需要創建一個 MongoDB 用戶并為其分配適當的角色。例如,創建一個名為 myuser
的用戶,并為其分配 readWrite
和 dbAdmin
角色:
use mydatabase
db.createUser(
{
user: "myuser",
pwd: "mypassword",
roles: [
{ role: "readWrite", db: "mydatabase" },
{ role: "dbAdmin", db: "mydatabase" }
]
}
)
MongoDB 自帶了一些預定義的角色,您可以根據需要為這些角色分配權限。以下是一些常用角色的權限示例:
read
:只能在特定數據庫上執行讀取操作。readWrite
:可以在特定數據庫上執行讀取和寫入操作。dbAdmin
:具有對特定數據庫的管理員權限,如創建索引、刪除集合等。userAdmin
:具有對特定數據庫的用戶管理權限,如創建、刪除用戶等。clusterAdmin
:具有對整個集群的管理員權限。要為用戶分配角色權限,請使用以下命令:
use mydatabase
db.grantRolesToUser("myuser", ["readWrite", "dbAdmin"])
要驗證用戶是否具有特定角色的權限,可以使用以下命令:
use mydatabase
db.getUser("myuser")
這將顯示用戶的角色和權限信息。
如果您希望限制用戶訪問特定數據庫或集合,可以在創建用戶時為其分配特定數據庫的權限。例如,只允許用戶訪問名為 mydatabase
的數據庫:
use mydatabase
db.createUser(
{
user: "myuser",
pwd: "mypassword",
roles: [
{ role: "readWrite", db: "mydatabase" }
]
}
)
這樣,用戶將只能訪問 mydatabase
數據庫,無法訪問其他數據庫。
這些是在 CentOS 下設置 MongoDB 權限的基本方法。您可以根據實際需求進行調整和擴展。