配置Ubuntu MongoDB的访问控制涉及几个步骤,包括启用身份验证、创建用户以及配置权限。以下是一个详细的指南:
首先,你需要启用MongoDB的身份验证。默认情况下,MongoDB在启动时不会启用身份验证。
打开MongoDB的配置文件(通常位于 /etc/mongod.conf
),找到并修改以下行:
security:
authorization: enabled
如果没有 security
部分,可以手动添加:
security:
authorization: enabled
保存并关闭文件。
运行以下命令以应用更改并重启MongoDB服务:
sudo systemctl restart mongod
连接到MongoDB实例并创建一个管理员用户。
mongo -u admin -p your_password --authenticationDatabase admin
在MongoDB shell中,创建一个管理员用户:
use admin
db.createUser({
user: "admin",
pwd: "your_password",
roles: ["root"]
})
你可以根据需要创建其他用户,并为他们分配特定的角色和权限。
连接到MongoDB实例并切换到要创建用户的数据库(例如 mydatabase
):
mongo -u admin -p your_password --authenticationDatabase admin
use mydatabase
创建一个新用户:
db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [
{ role: "readWrite", db: "mydatabase" }
]
})
你可以根据需要配置用户的权限。MongoDB提供了多种内置角色,例如 readWrite
、dbAdmin
、userAdmin
等。
假设你想为用户 myuser
分配对 mydatabase
数据库的读写权限,并且允许他创建集合:
db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [
{ role: "readWrite", db: "mydatabase" },
{ role: "dbAdmin", db: "mydatabase" }
]
})
确保所有用户都能正确登录并执行相应的操作。
mongo -u myuser -p mypassword --authenticationDatabase mydatabase
如果一切配置正确,你应该能够成功登录并访问数据库。
通过以上步骤,你已经成功配置了Ubuntu MongoDB的访问控制。确保在生产环境中使用强密码,并定期更新和审查用户权限。