mongo数据库用户创建及权限授予
基础概念:
Built-In Roles(内置角色):
1.数据库用户角色:read、readWrite;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4.备份恢复角色:backup、restore;
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7.内部角色:__system
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
backup,retore:在进行备份、恢复时可以单独指定的角色,在db.createUser()方法中roles里面的db必须写成是admin库,要不然会 报错
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限,
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
dbOwner:The database owner can perform any administrative action on the database. This role combines the privileges granted by the readWrite, dbAdmin and userAdmin roles.
归纳起来就是用户角色分为管理和普通角色,用户管理和表管理,有些只能是admin数据库才能设置的权限。
另外每一个角色都是针对一个数据库来说的,而每一个用户的创建有事再一个数据库底下创建,就是要先use dbname,然后创建用户,而创建的时候可以是别的数据库role 比如:
{
"_id" : "admin.admin",
"userId" : UUID("146db95a-31a2-4778-b7c5-24f5b446bf1e"),
"user" : "admin",
"db" : "admin",
"roles" : [
{
"role" : "clusterAdmin",
"db" : "admin"
},
{
"role" : "dbOwner",
"db" : "admin"
},
{
"role" : "dbAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
{
"_id" : "admin.user2",
"userId" : UUID("7c686ffe-09ee-456c-bd15-69026e56b08a"),
"user" : "user2",
"db" : "admin",
"roles" : [
{
"role" : "readWrite",
"db" : "pre"
},
{
"role" : "dbOwner",
"db" : "use2"
}
]
}
例如上面的admin用户有查看权限(所有数据库show collections),却没有其他db的读写权限,下面user2这个用户是创建在admin下面的,该用户对pre数据库和use2数据库分别由读写和所有权限。所以这块要注意人创建在哪个db下,可以操作哪个db。
下面附上一些db的权限密码相关操作:
show dbs 查看数据库
use dbname 进入数据库
show users 查看当前数据库用户权限
创建用户:
db.createUser({user:"usertest",pwd:"passtest",roles:[ {role:"clusterAdmin", db:"admin" }, {role:"readAnyDatabase",db:"admin" }, {role:"readWrite",db:"testDB" } ]})
修改密码:
方法1:db.changeUserPassword("usertest","changepass");
方法2:db.updateUser("usertest",{pwd:"changepass1"});
修改权限
db.updateUser("usertest",{roles:[ {role:"read",db:"testDB"} ]})
注:updateuser它是完全替换之前的值,如果要新增或添加roles而不是代替它
则使用方法: db.grantRolesToUser() 和 db.revokeRolesFromUser()
db.grantRolesToUser("usertest",[{role:"readWrite",db:"testDB"},{role:"read",db:"testDB"}]) #修改权限
db.revokeRolesFromUser("usertest",[{role:"read", db:"testDB"}]) # 删除权限:
删除用户:db.dropUser('usertest')
mongo数据库用户创建及权限授予相关推荐
- oracle数据库用户创建_权限分配_以及导入_导出数据,oracle数据库用户创建、权限分配,以及导入,导出数据...
下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例, 其中:安装目录选为:\oracle, 数据库名与数据库SID 号都输入:ora9i 数据库安装 ...
- 数据库用户创建、角色创建、用户和角色授予权限和权限收回
数据库用户创建.角色创建.用户和角色授予权限和权限收回 文章目录 数据库用户创建.角色创建.用户和角色授予权限和权限收回 前言 授权与权限回收 GRANT语句的一般格式 REVOKE语句的一般格式 1 ...
- mysql用户及数据库的创建及权限的更改
创建数据库 create database discuz default character set utf8 collate utf8_general_ci; 创建用户 create user 'd ...
- plsql 只读_使用PLSQL 创建Oracle数据库用户并设置权限
转至https://blog.csdn.net/ying890/article/details/14083029?utm_medium=distribute.pc_relevant_download. ...
- oracle用户创建及权限设置
权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...
- Orace用户创建及权限分配
权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...
- linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...
- Mongo 用户创建及权限管理
Mongo版本3.0之前使用的是db.addUser(),但3.0之后使用的是db.createUser() 内建的角色: 数据库用户角色:read.readWrite; 数据库管理角色:dbAdmi ...
- MongoDB新建数据库、集合以及用户创建和权限设置
有段时间没用MongoDB了,最近因为业务需要开始使用MongoDB.这里就简单总结一下常用命令. 1.连接及查看所有数据库 mongo 主机ip:端口号/连接的数据库名 -u 用户名 -p 密码 / ...
最新文章
- 求职技巧—2014六个秘诀二 - 年求职
- Ubuntu服务器上部署kodexplorer私有云盘
- D3 Data Visualization in Ext JS
- 第三十五讲:tapestry Ajax zone组件无黄色闪烁的背景
- java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题...
- 自定义Sublime Text图标详细教程
- Python 面向对象程序设计(一)
- 关于慢开始、拥塞控制、快重传、快恢复算法的理解
- jquery中获得table中第几个td元素的值
- TensorFlow:字词的向量表示
- docker_4 数据卷技术
- 使用 Solr 构建企业级搜索服务器
- 构建区块链量化交易系统(一)
- rose ha 的使用
- Java泛型对象的实例化
- MySQL区分大小写
- 五分钟玩转Andriod开发环境配置
- 基于Living Atlas数据为木里山体滑坡敏感性建模
- 【深度】广告流量分配HWM算法
- 2022湖南最新中级消防员模拟考试试题及答案
热门文章
- 电脑计算机软件硬盘不足,磁盘空间不足,教您电脑磁盘空间不足如何解决
- 【bzoj1018】【SHOI2008】【堵塞的交通traffic】
- java 文本框只能输入数字_java 24 - 6 GUI之 创建只能输入数字的文本框
- 生产安全管理解决方案
- 机器学习的评价指标决定系数的理解
- oracle merge into 批量新增或更新
- 兼容IE7、IE8、IE9的input type=number插件
- 一步一个脚印笔试面试(二)—google2013年校园招聘笔试题答案
- Alibaba easyExcel对Excel操作之复杂标题处理
- element tree 如何全部展开、全部折叠