在Linux上设置MongoDB的权限,需要遵循以下步骤:
-
创建一个专用的MongoDB用户和组: 首先,创建一个专用的用户和组,以便运行MongoDB服务。这将有助于提高系统安全性,因为MongoDB将以非root用户身份运行。
sudo groupadd mongodb sudo useradd -r -g mongodb mongodb -
更改MongoDB数据目录的所有权: MongoDB默认的数据目录是
/data/db。你需要将这个目录的所有权更改为刚刚创建的mongodb用户和组。sudo chown -R mongodb:mongodb /data/db -
配置MongoDB以使用身份验证: 编辑MongoDB配置文件(通常位于
/etc/mongod.conf),以启用身份验证并指定授权数据库。在security部分添加以下内容:security: authorization: enabled这将启用MongoDB的内置角色和权限系统。你还可以创建自定义角色和分配特定权限,以满足你的应用程序需求。
-
重启MongoDB服务: 保存更改并重启MongoDB服务以应用新的配置。
sudo systemctl restart mongod -
创建管理员用户: 使用
mongoshell连接到MongoDB实例,并创建一个具有管理员权限的用户。将替换为你选择的密码。mongo -u admin -p--authenticationDatabase admin --eval 'db.createUser({user:"admin", pwd:" ", roles:["root"]})' -
使用管理员用户登录: 使用新创建的管理员用户登录MongoDB。
mongo -u admin -p--authenticationDatabase admin -
创建应用程序用户: 在
mongoshell中,为你的应用程序创建一个新用户,并为其分配适当的角色。例如,你可以为用户分配readWrite角色,以允许其在特定数据库上执行读写操作。use myDatabase db.createUser({user:"myAppUser", pwd:"" , roles:["readWrite"]})
现在,你的MongoDB实例已经在Linux上设置了权限。应用程序应使用新创建的应用程序用户进行身份验证,以确保正确控制对数据的访问。