MongoDB 用户认证及操作
本文最后更新于:2021年6月21日 上午
如果还没有安装 MongoDB 可以参考:Windows 下 MongoDB 便携版安装与初始化
启动 mongod
和 mongo shell
服务
1 |
|
注:mongodb 的默认 port 就是 27017,所以也可以省略不写
创建管理员用户
1 |
|
验证用户登录
- 重启一下
mongod
服务
1 |
|
- 测试 root 用户是否能正常登录
- 使用用户名/密码认证连接 mongodb
1
2# 这里添加了 --authenticationDatabase 设置认证的数据库
mongo --port 27017 -u "root" -p "root" --authenticationDatabase "admin" - 连接到 mongo 客户端后验证
1
2
3mongo --port 27017
use admin;
db.auth("root", "root");
创建普通用户
1 |
|
使用 test 这个普通用户在登陆后能看到的也只有自己的数据库呢(如果数据库存在的话)
内建权限
下面是一些常用的权限
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问 system.profile
- userAdmin:允许用户向 system.users 集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限
- dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限。
- root:只在 admin 数据库中可用。超级账号,超级权限
使用 url 访问
1 |
|
查看用户
查看全局的所有账号
1
2use admin;
db.system.users.find().pretty()查看当前库下的用户
1
2use admin;
show users;
修改权限
追加
1
2
3
4
5# 给用户 test 追加新的权限
db.grantRolesToUser(
"test",
[{role:"readWrite", db:"test"}]
)替换
1
2
3
4
5
6
7
8
9# 替换用户 test 的权限
db.updateUser(
"test",
{
roles: [
{role:"read", db:"test"}
]
}
)
删除用户
删除掉名为 test 的用户
1 |
|
MongoDB 用户认证及操作
https://blog.rxliuli.com/p/ff25d82d183d44b2b014514c56c986d1/