在 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 权限的基本方法。您可以根据实际需求进行调整和扩展。