在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地址的连接。