在Linux上管理MongoDB用户权限,需要使用mongo
shell连接到MongoDB实例,并使用db.createUser()
、db.updateUser()
和db.dropUser()
等命令来创建、更新和删除用户。以下是一些基本步骤:
连接到MongoDB实例:
使用mongo
shell连接到MongoDB实例。如果你需要指定用户名和密码,可以使用以下命令:
mongo -u <username> -p <password> --authenticationDatabase admin
如果MongoDB实例运行在非默认端口或需要其他连接选项,可以在mongo
命令中添加相应的参数。
创建用户:
使用db.createUser()
命令创建新用户。例如,创建一个名为myUser
的用户,密码为myPassword
,并赋予对myDatabase
数据库的读取和写入权限:
db.createUser({
user: "myUser",
pwd: "myPassword",
roles: [
{ role: "readWrite", db: "myDatabase" }
]
});
更新用户权限:
使用db.updateUser()
命令更新现有用户的权限。例如,为myUser
添加对myOtherDatabase
数据库的读取权限:
db.updateUser("myUser", {
roles: [
{ role: "readWrite", db: "myDatabase" },
{ role: "read", db: "myOtherDatabase" }
]
});
删除用户:
使用db.dropUser()
命令删除用户。例如,删除myUser
用户:
db.dropUser("myUser");
查看用户列表:
使用db.getUsers()
命令查看当前数据库中的所有用户:
db.getUsers();
管理角色:
MongoDB有一些内置角色,如readWrite
、dbAdmin
等。你可以使用db.createRole()
和db.updateRole()
命令创建和更新自定义角色,并为其分配权限。
请注意,为了安全起见,建议在创建用户时使用强密码,并定期更新密码。此外,确保MongoDB实例的访问控制已启用,以便这些用户权限设置生效。如果MongoDB实例运行在远程服务器上,还需要配置防火墙规则以允许来自特定IP地址的连接。