溫馨提示×

MongoDB訪問控制列表如何設(shè)置權(quán)限

小樊
82
2024-11-01 01:54:37
欄目: 云計算

在MongoDB中,訪問控制列表(Access Control List,ACL)允許您為數(shù)據(jù)庫用戶定義特定角色和權(quán)限

  1. 首先,確保您已登錄MongoDB服務(wù)器并連接到管理數(shù)據(jù)庫(通常是admin數(shù)據(jù)庫)。
use admin
  1. 創(chuàng)建用戶并分配角色。以下示例創(chuàng)建一個名為myUser的用戶,該用戶具有在mydb數(shù)據(jù)庫上讀取、寫入和執(zhí)行查詢的權(quán)限:
db.createUser(
  {
    user: "myUser",
    pwd: "myUserPassword",
    roles: [
      { role: "readWrite", db: "mydb" },
      { role: "dbAdmin", db: "mydb" }
    ]
  }
)
  1. 為用戶創(chuàng)建訪問控制列表。以下示例為myUser創(chuàng)建一個ACL,允許其在特定集合(例如myCollection)上執(zhí)行特定操作:
db.createACL(
  {
    user: "myUser",
    db: "mydb",
    collection: "myCollection",
    roles: [
      { role: "readWrite", db: "mydb" },
      { role: "dbAdmin", db: "mydb" }
    ]
  }
)
  1. 如果您需要為用戶分配多個角色,可以使用數(shù)組將多個角色分開。例如,以下示例為myUser分配了readWritedbAdmin角色:
roles: [
  { role: "readWrite", db: "mydb" },
  { role: "dbAdmin", db: "mydb" }
]
  1. 如果您需要為用戶分配多個數(shù)據(jù)庫的權(quán)限,可以在roles數(shù)組中使用多個對象,每個對象表示一個數(shù)據(jù)庫及其相關(guān)角色。例如:
roles: [
  { role: "readWrite", db: "mydb" },
  { role: "dbAdmin", db: "mydb" },
  { role: "readOnly", db: "otherDB" }
]
  1. 如果您需要為用戶分配多個集合的權(quán)限,可以在roles數(shù)組中使用多個對象,每個對象表示一個集合及其相關(guān)角色。例如:
roles: [
  { role: "readWrite", db: "mydb", collection: "myCollection" },
  { role: "dbAdmin", db: "mydb" },
  { role: "readOnly", db: "otherDB", collection: "anotherCollection" }
]

通過以上步驟,您可以為MongoDB用戶設(shè)置訪問控制列表,以便他們能夠執(zhí)行特定操作。

0