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: [ ]
})
- 点击“保存”按钮以创建新用户。