管理 MongoDB 用户和权限

2022-10-15,,,

创建用户

创建用户的函数是:db.createUser()

创建用户时,需要为该用户添加权限。可添加的权限以及说明:

权限 作用
read 允许用户读取指定数据库。
readWrite 允许用户读写指定数据库。
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile。
userAdmin 允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户。
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限。
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限。
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限。
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root 只在admin数据库中可用。超级账号,超级权限。

进入命令行

进入 MongoDB 命令行,切换到 admin 数据库:

> use admin
switched to db admin

添加用户权限

db.createUser({"user": "[username]", "pwd": "[password]", "roles": [{"role": "userAdminAnyDatabase", "db": "admin"}]})

添加用户认证

在配置文件末尾处添加auth = true。访问数据库时必须进行用户认证才可操作数据库:

再次启动服务,使用数据库时进行用户认证:

> use admin
switched to db admin
> db.auth("[username]", "[password]")
1

更新用户权限

更新用户权限的函数是:db.updateUser()。更新用户权限需要用户具有userAdminuserAdminAnyDatabaseroot中的其中一个。

更改用户密码

更改用户密码的函数是db.updateUser()db.changeUserPassword()。更新用户权限需要用户具有userAdminuserAdminAnyDatabaseroot中的其中一个。

删除用户

删除用户的函数是db.dropUser()。更新用户权限需要用户具有userAdminuserAdminAnyDatabaseroot中的其中一个。

管理 MongoDB 用户和权限的相关教程结束。

《管理 MongoDB 用户和权限.doc》

下载本文的Word格式文档,以方便收藏与打印。