wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [arch=amd64,arm64] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update && sudo apt install -y mongodb-org
/etc/mongod.conf,添加以下内容:security:
authorization: enabled
重启服务生效:sudo systemctl restart mongod
以root角色创建管理员,用于全局管理:
mongo
use admin
db.createUser({
user: "admin",
pwd: "强密码",
roles: ["root"]
})
注:root角色拥有所有数据库的完全权限。
use mydatabase
db.createUser({
user: "appUser",
pwd: "应用密码",
roles: [{ role: "readWrite", db: "mydatabase" }]
})
use mydatabase
db.createUser({
user: "dbAdmin",
pwd: "admin密码",
roles: ["dbAdmin", "userAdmin"]
})
*常用角色:read(只读)、readWrite(读写)、dbAdmin(数据库管理)、userAdmin(用户管理)。
使用新用户登录并测试权限:
mongo -u appUser -p "应用密码" --authenticationDatabase mydatabase
db.runCommand({ connectionStatus: 1 }) # 查看当前用户权限
可细化到集合级别,例如仅允许用户读写特定集合:
use mydatabase
db.createCollection("mycollection")
db.createUser({
user: "limitedUser",
pwd: "limited密码",
roles: [{ role: "readWrite", db: "mydatabase", collection: "mycollection" }]
})
通过配置文件限制可访问的IP地址:
sudo nano /etc/mongod.conf
# 添加以下内容(允许多个IP,用逗号分隔)
net:
bindIp: 127.0.0.1,192.168.1.100
重启服务生效。
sudo apt update && sudo apt upgrade mongodb-org
/etc/mongod.conf中配置SSL证书,保护数据传输安全。| 操作 | 命令示例 |
|---|---|
| 创建管理员 | db.createUser({ user: "admin", pwd: "密码", roles: ["root"] }) |
| 创建数据库用户 | db.createUser({ user: "user1", pwd: "密码", roles: [{ role: "readWrite", db: "db1" }] }) |
| 查看用户权限 | db.getUser("用户名") |
| 删除用户 | db.dropUser("用户名") |
| 启用/禁用认证 | 修改/etc/mongod.conf中authorization字段,重启服务 |
通过以上步骤,可在Debian系统上实现MongoDB的精细化权限管理,确保数据安全。