创建用户账号:
(roles参数指定了用户的角色以及这个账号授权的数据库,在同一个数据库中不能同时创建两个用户名相同的账号)
Mongodb内置的用户角色:
- 数据库用户角色:read、readWrite
- 数据库管理角色:dbAdmin、dbOwner、userAdmin
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
- 备份恢复角色:backup、restore
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
6. 超级用户角色:root
(间接或直接提供了系统超级用户访问的角色:dbOwner、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
角色具体介绍:
read:允许用户读取指定数据库。
readWrite:允许用户读写指定数据库。
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计等。
userAdmin:允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户。
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用(授权数据库只能是admin,但是可以在其他数据库下创建,以下与此相同),
赋予用户所有数据库的读权限。
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限。
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限。
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用,超级账号,超级权限,不仅可以授权,而且也可以对集合进行任意操作。
用户账号使用:
使用--auth命令行选项开启安全检查:
mongod --dbpath d:\mongodb\data\db --auth
再次使用mongo shell连接mongodb服务器的时候需要先进行权限验证
(用户账号是在哪个数据库中创建的,就要到哪个数据库下验证,然后再到账号授权的数据库下执行操作)
这个命令也可用于在不同用户账号之间切换。
若不进行权限验证则会报错:not authorized on ... to execute command ...
修改用户账号信息:
(到用户账号创建的数据库下修改,但是无法修改用户名)
删除用户账号:
db.dropUser(用户名)
(到用户账号创建的数据库下删除)
查询用户账号: