MongoDB 提供使用者管理介面,用於執行各種與使用者相關的工作。除了加入新使用者之外,使用者管理介面還允許資料庫管理員(DBA)更新現有使用者的設定,例如變更密碼和授予或撤消角色的權限。在今天的文章中,我們將探討如何使用 Navicat for MongoDB 的使用者和角色管理工具建立新使用者。
MongoDB 如何儲存使用者資料
了解在 MongoDB 中建立新使用者時會發生什麼很重要。使用者的資料將插入到稱為「驗證資料庫」的特定數據庫中。此外,MongoDB 將所有使用者資訊(包括名稱、密碼和使用者的驗證資料庫)儲存在「admin」資料庫的「system.users」集合中。
使用者的名稱和驗證資料庫一同用作該使用者的唯一識別元。因此,如果兩個使用者具有相同的名稱但在不同的資料庫中建立,則實際上它們在任何一方面都被視為兩個獨立的使用者。因此,如果你打算讓一個使用者擁有多個資料庫的權限,則應在適用的資料庫中建立一個被指派了角色的使用者,而不是在不同的資料庫中多次建立使用者。
關於權限,這不僅限於使用者的驗證資料庫,還可以擴展到不同的資料庫。透過指派其他資料庫的使用者角色給在一個資料庫建立的使用者,可以令他擁有操作這些資料庫的權限。
建立新使用者
DBA 不應直接存取「system.users」集合,而應使用 MongoDB 的使用者管理命令-db.createUser() 方法或 createUser 命令建立使用者。
這作業是在「employees」資料庫中建立使用者並指派他/她的名稱、密碼和角色:
use employeesdb.createUser(
{
user: "tsmith",
pwd: "ascend99",
roles: [
{ role: "read", db: "employees" },
{ role: "read", db: "products" },
{ role: "read", db: "sales" },
{ role: "readWrite", db: "accounts" }
]
}
)
Navicat 提供功能強大的使用者設計器工具,用於管理伺服器使用者帳號及其相關權限。它將所有使用者的資訊和權限儲存在伺服器上,因為它在這個動作的背後使用 MongoDB 的原生命令。你將在主視窗工具列中找到「使用者」或「角色」命令。按一下按鈕以開啟使用者或角色物件清單:
使用者設計器工具概覽
從使用者或角色物件清單中選擇「使用者」項目,開啟一個包含使用者相關命令的新物件工具列:
若要建立新使用者,請按一下「新增使用者」按鈕。這將開啟使用者設計器工具:
使用者設計器從左到右分為幾個索引標籤,如下所示:
- 一般:
使用者名稱、密碼、加密規格。 - 自訂資料:
在此索引標籤中,你可以輸入此使用相關聯的任何資訊。 - 內建角色:
在清單中,指定此使用者成為已選取的內建角色的成員。 - 使用者定義角色:
在清單中,指定此使用者成為已選取的使用者定義角色的成員。 - 驗證限制:
編輯伺服器對使用者強制執行的特定驗證限制。 - 指令碼預覽:
顯示將要執行的原生 MongoDB 命令。
若要在 Navicat 中加入以上的使用者:
在「一般」索引標籤中:
- 輸入「使用者名稱」。
- 指定使用者的登入密碼。
- 在「確認密碼」欄位中重新輸入登入密碼。
- 接下來,在「內建角色」索引標籤中,我們將選取以下角色:
- 你可以在「指令碼預覽」索引標籤中預覽產生的命令:
db.createUser({
user: "tsmith",
pwd: "ascend99",
roles: [
{
role: "read",
db: "sales"
},
{
role: "readWrite",
db: "accounts"
},
{
role: "read",
db: "employees"
},
{
role: "read",
db: "products"
}
],
authenticationRestrictions: [ ]
})
- 按一下「儲存」按鈕以建立新使用者。