Docker创建用户设置权限、删除用户
1. 创建用户设置权限
【阅读须知】
1. 用户被创建在哪个数据库下,就只能在哪个数据库登录
2. docker-compose.yml设置的初始用户
针对admin数据库下
admin这个数据库是系统自带的数据库,**他的用户可以访问任何其他数据库的数据**,也叫做超级管理员
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=123
(1)切换数据库
use admin
# switched to db admin
(2) db.createUser()在当前数据库创建用户
如需auth校验 => db.auth(user,pwd)
# 函数声明:
db.createUser({
user: "<name>",
pwd: "<cleartext password>",
customData: { <any information> },
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
]
});
示例:
config> db.createUser({user:'config1',pwd:'123',roles:[{role:'readWrite',db:'local'}]})
1. 创建在config数据库下的用户;
2. 用户名:config1
3. roles:[{role:'readWrite',db:'local'}]
此用户权限包含:对数据库local拥有readWrite权限
**注意!!!
roles属性的两种书写格式
简要:
采取下方第2种格式的:默认将权限作用于当前use的数据库
roles: [{ role: "<role>", db: "<database>" } | "<role>"]
第1种:
roles: [{ role: "<role>", db: "<database>" }]
第2种:
roles: ["<role>"]
**第1种等价于第2种**
# 示例
config> db.createUser({user:'lsy',pwd:'123',roles:['readWrite']})
# 等价于 (config 当前use数据库)
config> db.createUser({user:'lsy',pwd:'123',roles:[{role:'readWrite',db:'config'}]})
(3)查验创建结果
show users
返回结果 成功!
[
{
_id: 'config.config1',
userId: new UUID("8c427686-3a07-4176-84bf-0c3e69fd66de"),
user: 'config1',
db: 'config',
roles: [ { role: 'readWrite', db: 'local' } ],
mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]
}
]
2. 删除用户
db.dropUser(“用户名”)