MongoDB 詞彙表 – 角色
在 MongoDB 中,角色是一組權限,用於決定用戶可以在特定資料庫或集合上執行的操作。角色被用來控制對數據的訪問以及在 MongoDB 部署中管理用戶的權限。
了解 MongoDB 中的角色
MongoDB 的角色是在資料庫層級定義的,可以分配給用戶或用戶自定義的角色。每個角色都包含一組權限,這些權限定義了用戶在特定資料庫或集合上可以執行的操作。這些權限包括讀取、寫入、更新、刪除和管理操作等。
角色可以分為兩大類:
- 內建角色:MongoDB 提供了幾個內建角色來應對常見的使用情景。這些角色包括 read、readWrite、dbAdmin 和 userAdmin 等。內建角色有預定義的權限,並可以直接分配給用戶。
- 自定義角色:除了內建角色外,MongoDB 還允許用戶創建具有特定權限的自定義角色,以滿足應用程式的需求。自定義角色提供了更細緻的權限控制,並可以分配給用戶或其他自定義角色。
為用戶分配角色
要在 MongoDB 中為用戶分配角色,可以使用 db.grantRolesToUser() 方法。此方法允許您指定用戶、資料庫以及您要分配的角色。例如,要將 readWrite 角色分配給 “mydatabase” 資料庫中的一個用戶,可以使用以下命令:
db.grantRolesToUser("myuser", [{ role: "readWrite", db: "mydatabase" }])同樣,您可以使用 db.revokeRolesFromUser() 方法來撤銷用戶的角色。
管理自定義角色
在 MongoDB 中,可以使用 db.createRole()、db.updateRole() 和 db.dropRole() 方法來創建和管理自定義角色。這些方法允許您分別定義、修改和刪除角色。
在創建自定義角色時,您可以通過 privileges 欄位來指定該角色應具備的權限。例如,要創建一個擁有對 “mydatabase” 資料庫中 “mycollection” 集合的讀取和寫入權限的角色,可以使用以下命令:
db.createRole({
role: "myRole",
privileges: [
{ resource: { db: "mydatabase", collection: "mycollection" }, actions: ["find", "insert", "update", "remove"] }
],
roles: []
})創建後,自定義角色可以通過 db.grantRolesToUser() 方法分配給用戶或其他自定義角色。
結論
角色在 MongoDB 中扮演著管理用戶權限和訪問控制的關鍵角色。通過為用戶分配適當的角色,您可以確保只有授權的操作才能在資料庫和集合上執行。不論是使用內建角色還是創建自定義角色,MongoDB 提供了一個靈活且強大的系統來管理用戶權限。
欲了解更多有關 MongoDB 及其功能,請訪問 Server.HK。