MongoDB用户,角色管理 --- MongoDB基础用法(三)
2024-08-27 05:06:30
用户管理
用户创建
MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问。 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作。 用户应该只有最小权限集才能确保最小权限的系统。
MongoDB系统的每个应用程序和用户都应该映射到不同的用户。 这种访问隔离便于访问撤销和持续的用户维护。
创建管理员用户
要在MongoDB部署中创建用户,请连接到部署,然后使用db.createUser()方法或createUser命令添加用户。
> use admin
> db.createUser(
{
user:"root",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
)
修改密码
db.changeUserPassword("username","newpassword")
用户删除
db.dropUser("root")
用户认证
db.auth('user','pwd')
用户查询
db.system.users.find()
删除用户角色
db.revokeRolesFromUser(
"usename",
[
{ role: "readWrite", db: "accounts" }
]
)
添加用户角色
db.grantRolesToUser(
"reportsUser",
[
{ role: "read", db: "accounts" }
]
)
角色管理
自定义角色保存在admin数据库system.roles集合中
添加角色
db.createRole(
{
role: "<name>",
privileges: [
{
resource: { db: "myApp", collection: "" },
actions: [ "insert", "dbStats", "collStats", "compact" ]
}
...
],
roles: [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
authenticationRestrictions: [
{
clientSource: ["<IP>" | "<CIDR range>", ...],
serverAddress: ["<IP>" | "<CIDR range>", ...]
},
...
]
}
)
查看角色
db.getRole("rolename",{showPrivileges:true})
删除角色
db.dropRole("rolename")
角色权限
角色 | 权限 |
---|---|
read | 允许用户读取指定数据库 |
readWrite | 允许用户读写指定数据库 |
dbAdmin | 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile |
dbOwner | 允许在当前DB中执行任意操作 |
useradmin | 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 |
readAnyDatabase | 赋予用户所有数据库的读权限,只在admin数据库中可用 |
readWriteAnyDatabase | 赋予用户所有数据库的读写权限,只在admin数据库中可用 |
userAdminAnyDatabase | 赋予用户所有数据库管理User的权限,只在admin数据库中可用 |
dbAdminAnyDatabase | 赋予管理所有数据库的权限,只在admin数据库中可用 |
root | 超级账号,超级权限,只在admin数据库中可用。 |
clusterAdmin | 赋予管理集群的最高权限,只在admin数据库中可用 |
clusterManager | 赋予管理和监控集群的权限 |
clusterMonitor | 赋予监控集群的权限,对监控工具具有readonly的权限 |
hostManager | 赋予管理Server |
更多:https://docs.mongodb.com/manual/core/security-user-defined-roles/
最新文章
- [LeetCode] Power of Four 判断4的次方数
- Linux Pthread 深入解析(转-度娘818)
- 收藏的 500多个开源的Git源码
- JavaScript学习笔记- 省市级联效果
- 让所有的浏览器都支持html5
- [C++] 井字棋游戏源码
- C++学习9 this指针详解
- objective c的注释规范
- spring的长处 ioc aop
- yum和apt-get的区别
- susmote个人网站博客论坛(TexTec | 关注互联网技术,传播极客精神)
- Net包管理NuGet(1)nuget的使用方法
- BZOJ.2118.墨墨的等式(思路 最短路Dijkstra 按余数分类)
- HDOJ 2008 数值统计
- [Message123] JMS 与 MQ
- xtrabackup-工作原理
- 【FusionCharts学习-1】获取资源
- WSAAsyncSelect 模型
- c++11新特性总结(转。加上重点)
- plink参数说明