MongoDB在Linux上的权限设置主要涉及用户管理、角色分配及访问控制,具体步骤如下:
创建用户与角色
admin
数据库,创建管理员用户(需分配root
或userAdminAnyDatabase
等角色):use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: [{ role: "root", db: "admin" }]
})
readWrite
):use myDatabase
db.createUser({
user: "appUser",
pwd: "app_password",
roles: [{ role: "readWrite", db: "myDatabase" }]
})
启用身份验证
编辑配置文件/etc/mongod.conf
,添加以下内容:
security:
authorization: enabled
重启服务生效:
sudo systemctl restart mongod
数据目录权限设置
确保MongoDB数据目录(默认/data/db
)由mongodb
用户拥有,权限为755
:
sudo chown -R mongodb:mongodb /data/db
sudo chmod 755 /data/db
可选:加密连接(SSL/TLS)
在/etc/mongod.conf
中配置SSL参数,启用加密通信:
net:
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 admin -p your_password
验证权限
使用新用户登录并测试权限:
mongo -u appUser -p app_password --authenticationDatabase myDatabase
db.runCommand({ connectionStatus: 1 }) # 查看当前用户权限
关键说明:
read
、dbAdmin
)和自定义角色,可根据需求组合分配。27017
,并通过防火墙限制访问IP。