MongoDB在Linux上的权限管理怎么做
导读:MongoDB在Linux上的权限管理步骤 1. 安装MongoDB(若未安装) 首先确保Linux系统已安装MongoDB Community Server。以CentOS为例,可通过以下命令安装: sudo yum install mo...
MongoDB在Linux上的权限管理步骤
1. 安装MongoDB(若未安装)
首先确保Linux系统已安装MongoDB Community Server。以CentOS为例,可通过以下命令安装:
sudo yum install mongodb mongodb-server mongodb-devel
安装完成后,启动MongoDB服务并设置开机自启:
sudo systemctl start mongod
sudo systemctl enable mongod
2. 启用MongoDB身份验证
权限管理的核心是启用身份验证,需修改MongoDB配置文件(通常位于/etc/mongod.conf
):
sudo nano /etc/mongod.conf
找到security
section,添加或修改以下内容:
security:
authorization: enabled
保存文件后,重启MongoDB服务使配置生效:
sudo systemctl restart mongod
3. 创建管理员用户(管理数据库用户与角色)
为安全起见,首先创建一个管理员用户(拥有root
角色,可管理所有数据库的用户和角色):
mongo
在MongoDB shell中执行:
use admin
db.createUser({
user: "admin",
pwd: "StrongAdminPassword123!",
roles: ["root"]
}
)
exit
注:root
是MongoDB内置的最高权限角色,可管理集群、数据库、用户等所有资源。
4. 创建数据库用户并分配角色
根据业务需求,为特定数据库创建用户并分配最小必要权限(遵循“最小权限原则”):
-
示例1:创建读写权限用户(适用于应用访问数据库)
mongo -u admin -p StrongAdminPassword123 --authenticationDatabase admin
在shell中执行:
use myDatabase // 替换为目标数据库名 db.createUser({ user: "appUser", pwd: "AppUserPassword456!", roles: [{ role: "readWrite", db: "myDatabase" } ] } ) exit
-
示例2:创建只读权限用户(适用于报表查询等场景)
use myDatabase db.createUser({ user: "reportUser", pwd: "ReportUserPassword789!", roles: [{ role: "read", db: "myDatabase" } ] } ) exit
-
常用内置角色说明:
角色 权限范围 适用场景 read
读取指定数据库的所有数据 报表查询、数据分析 readWrite
读写指定数据库的所有数据 应用程序日常数据操作 dbAdmin
数据库管理(索引、统计等) 数据库维护人员 userAdmin
管理指定数据库的用户/角色 数据库管理员(仅限该数据库) root
超级权限(所有数据库、集群) 系统管理员 更多角色可参考MongoDB官方文档。
5. 验证用户权限
使用创建的用户连接MongoDB,验证其权限是否生效:
-
验证读写用户:
mongo -u appUser -p AppUserPassword456 --authenticationDatabase myDatabase
在shell中执行:
use myDatabase db.mycollection.insert({ name: "test" } ) // 测试写入 db.mycollection.find() // 测试读取 exit
-
验证只读用户:
mongo -u reportUser -p ReportUserPassword789 --authenticationDatabase myDatabase
在shell中执行:
use myDatabase db.mycollection.find() // 应能读取数据 db.mycollection.insert({ name: "test" } ) // 应提示无写入权限 exit
6. 可选:增强安全性配置
-
使用TLS/SSL加密连接:在
/etc/mongod.conf
中配置SSL,防止数据传输被窃听:net: ssl: mode: requireSSL PEMKeyFile: /path/to/mongodb.pem CAFile: /path/to/ca.pem
重启服务后,客户端连接需指定SSL参数:
mongo --ssl --sslCAFile /path/to/ca.pem --sslPEMKeyFile /path/to/mongodb.pem -u appUser -p AppUserPassword456 --authenticationDatabase myDatabase
-
使用防火墙限制访问:通过
ufw
限制MongoDB端口(默认27017)的访问,仅允许可信IP访问:sudo ufw allow from 192.168.1.100 to any port 27017 sudo ufw enable
通过以上步骤,可在Linux系统上完成MongoDB的权限管理,确保数据库的安全性和数据的完整性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB在Linux上的权限管理怎么做
本文地址: https://pptw.com/jishu/728235.html