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

切换到admin数据库
use admin

查看用户
show users

创建管理员用户
db.createUser( { user: "admin", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin"}]})

然后查看创建的用户
show users

编辑配置文件 mongodb服务的conf目录下的mongdb.conf 文件

在mongdb.conf 文件中修添加如下内容:auth=true

修改之后,重启mongdb服务 ,重新连接mongdb
#停止服务
[root@localhost conf]# mongod --config /home/mongo/conf/mongodb.conf --shutdown
#启动服务
[root@localhost conf]# mongod --config /home/mongo/conf/mongodb.conf

使用创建好的管理员用户及密码,重新连接mongdb,如下图:

创建普通数据库, 先切到admin数据库,然后db.auth(“用户”,“密码”) 登录。
use admin
db.auth("admin","123456")

通过 use 命令创建数据库 test,如果已经有该数据就会进行切换。如果数据库没有数据执行 show dbs 数据库不会被显示
> use test
可以通过 db 命令查看当前是哪个数据库
db


在 test 数据库中 ,创建test数据库的用户
db.createUser({user:"testuser",pwd:"123456",roles:[{role:"userAdmin",db :"test"},{role:"dbAdmin",db:"test"},{role:"readWrite",db:"test"}]})

查看创建的普通用户
> show users

登录test数据库
use test
db.auth("testuser","123456")

使用创建好的test数据库的普通用户及密码,重新连接mongdb,如下图:

