在Linux系统中,MongoDB的权限可以通过以下步骤进行设置:
首先,你需要创建一个用户并为其分配适当的角色。MongoDB使用基于角色的访问控制(RBAC)。
mongo
shell创建用户mongo
在mongo
shell中执行以下命令:
use admin
db.createUser({
user: "myUserAdmin",
pwd: "myUserAdminPwd",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
})
mongosh
shell创建用户(MongoDB 4.0及以上版本)mongosh
在mongosh
shell中执行以下命令:
use admin
db.createUser({
user: "myUserAdmin",
pwd: "myUserAdminPwd",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
})
编辑MongoDB配置文件(通常是/etc/mongod.conf
),确保启用了身份验证:
security:
authorization: enabled
使配置更改生效:
sudo systemctl restart mongod
使用新创建的用户连接到MongoDB:
mongo -u myUserAdmin -p myUserAdminPwd --authenticationDatabase admin
如果你需要为特定数据库创建用户,可以在目标数据库中创建用户并分配角色。
mongo
shell中创建数据库级别的用户use myDatabase
db.createUser({
user: "myAppUser",
pwd: "myAppUserPwd",
roles: [
{ role: "readWrite", db: "myDatabase" }
]
})
你可以使用db.runCommand
来验证用户的权限:
db.runCommand({ connectionStatus: 1 })
为了提高安全性,可以配置MongoDB使用TLS/SSL加密连接。这需要在MongoDB配置文件中进行相应的设置,并确保客户端也支持TLS/SSL。
mongod.conf
中启用TLS/SSLnet:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/mongodb.pem
CAFile: /path/to/ca.pem
mongo --ssl --sslCAFile /path/to/ca.pem --sslPEMKeyFile /path/to/mongodb.pem -u myUserAdmin -p myUserAdminPwd --authenticationDatabase admin
通过以上步骤,你可以在Linux系统中为MongoDB设置详细的权限和安全性配置。