1、使用数据库
$ mongo
MongoDB shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.5
> use admin
switched to db admin
2、创建用户
> db.createUser(
... { user: "admin",
... pwd: "admin",
... roles: [{ role:"root", db:"admin"}]
... }
... )
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
3、查看用户
> show users
{
"_id" : "admin.admin",
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
4、服务启用权限认证
4.1 创建服务配置文件
systemLog:
destination: file
path: E:\MongoDB\logs\mongodb.log //日志输出路径
storage:
dbPath: E:\MongoDB\data //数据存放路径
security:
authorization: enabled //启用权限认证 enabled:启用、 disabled:不启用
4.2 注册mongodb服务
mongod --config E:\MongoDB\mongodb.conf -install -serviceName "MongoDB"
注:修改服务信息后需重启服务,确保log文件不存在
5、数据库授权
> db.auth("username","password")
0 //授权失败
1 //授权成功
6、删除数据库用户
> db.system.users.remove({user:"admin"})
7、权限列表
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限