mongodb创建local库用户_mongodb用户与角色使用

此文档以mongodb 4.0版本进行对用户权限和角色讲解,更详细内容可参考mongodb官方文档.

官方文档:https://docs.mongodb.com/manual/core/security-users/

一.mongodb内部角色

1.数据库用户角色

read      --读取数据库对像的权限

readWrite   --读取和修改数据库对像权限

2.数据库管理角色

dbAdmin   --执行管理任务角色

dbOwner   --数据库所有者,可以对数据库所有操作

userAdmin   --当前数据库上创建,修改角色和用户功能

3.集群管理角色

clusterAdmin          --集群管理员

clusterManager      --管理集群和监控

clusterMonitor       --监控集群和只读访问

hostManager         --监控和管理服务器功能

4.备份恢复角色

backup    --备份数据最小权限

restore    --恢复权限

5.所有数据库角色

readAnyDatabase   --只读所有数据库角色

readWriteAnyDatabase     --读写所有数据库

userAdminAnyDatabase   --除local之外的所有数据库相同的用户管理操作访问权限

dbAdminAnyDatabase      --除local之外的所有数据库相同的权限

6.超级用户角色

root         --提供所有资源readWriteAnyDatabase,dbAdminAnyDatabase,userAdminAnyDatabase,clusterAdmin,restore,backup

7.内部角色

__system       --提供对数据库中的任何对象执行任何操作的权限

二.自定义角色

1.自定义角色格式

{

role: "",

privileges: [

{ resource: {  }, actions: [ "", ... ] },

...

],

roles: [

{ role: "", db: "" } | "",

...

],

authenticationRestrictions: [

{

clientSource: ["" | "", ...],

serverAddress: ["" | "", ...]

},

...

]

}

2.自定义角色(对config库所有表可以增删改查,对users库usersCollection表更新,插入,删除,对所有数据库有查找权限)

> use admin

switched to db admin

> db.createRole(

{

role: "wuhan123",       --角色名

privileges: [

{ resource: { db: "config", collection: "" }, actions: [ "find", "update", "insert", "remove" ] },

{ resource: { db: "users", collection: "usersCollection" }, actions: [ "update", "insert", "remove" ] },

{ resource: { db: "", collection: "" }, actions: [ "find" ] }

],

roles: [

{ role: "read", db: "admin" }

]

}

)

>

3.列出角色和删除角色

> db.getRole("wuhan123")   --显示单个角色信息(wuhan123是角色名)

{

"role" : "wuhan123",

"db" : "admin",

"isBuiltin" : false,

"roles" : [

{

"role" : "read",

"db" : "admin"

}

],

"inheritedRoles" : [

{

"role" : "read",

"db" : "admin"

}

]

}

> db.getRoles()     --显示当前库所有角色

[

{

"role" : "wuhan123",

"db" : "admin",

"isBuiltin" : false,

"roles" : [

{

"role" : "read",

"db" : "admin"

}

],

"inheritedRoles" : [

{

"role" : "read",

"db" : "admin"

}

]

}

]

> db.dropRole("wuhan123");     --删除角色

true

> db.dropAllRoles();       --删除所有角色

NumberLong(1)

>

三.创建用户并使用角色

1.创建用户格式

{

user: "",

pwd: "",

customData: {  },

roles: [

{ role: "", db: "" } | "",

...

],

authenticationRestrictions: [

{

clientSource: ["" | "", ...]

serverAddress: ["" | "", ...]

},

...

],

mechanisms: [ "", ... ],

passwordDigestor: ""

}

2.创建用户使用角色

> use tong     --进入数据库

switched to db tong

> db.createUser(

...    {

...      user: "u_tong",       --指定用户名

...      pwd: "system123",     --指定密码

...      roles: [ "readWrite", "dbAdmin" ]     --使用数据库中的角色

...    }

... )

Successfully added user: { "user" : "u_tong", "roles" : [ "readWrite", "dbAdmin" ] }

>

2.创建用户指定来源IP和目标IP

> use tong

switched to db tong

> db.createUser(

{

user: "u1_tong",    --用户名

pwd: "system123",   --密码

roles: [ { role: "readWrite", db: "tong" } ],   --角色

authenticationRestrictions: [ {

clientSource: ["192.168.1.10"],    --客户端IP

serverAddress: ["192.168.1.20"]    --服务端IP

} ]

}

)>

3.查看用户和删除用户

> db.getUsers();      --查看当前数据库所有用户

[

{

"_id" : "tong.u1_tong",

"user" : "u1_tong",

"db" : "tong",

"roles" : [

{

"role" : "readWrite",

"db" : "tong"

}

],

"mechanisms" : [

"SCRAM-SHA-1",

"SCRAM-SHA-256"

]

},

{

"_id" : "tong.u_tong",

"user" : "u_tong",

"db" : "tong",

"roles" : [

{

"role" : "readWrite",

"db" : "tong"

},

{

"role" : "dbAdmin",

"db" : "tong"

}

],

"mechanisms" : [

"SCRAM-SHA-1",

"SCRAM-SHA-256"

]

}

]

> db.getUser("u_tong");     --查看指定用户

{

"_id" : "tong.u_tong",

"user" : "u_tong",

"db" : "tong",

"roles" : [

{

"role" : "readWrite",

"db" : "tong"

},

{

"role" : "dbAdmin",

"db" : "tong"

}

],

"mechanisms" : [

"SCRAM-SHA-1",

"SCRAM-SHA-256"

]

}

> db.dropUser("u_tong");    --删除单个用户

true

> db.dropAllUsers();        --删除当前库所有用户

NumberLong(1)

>

4.将角色授权给用户

> db.grantRolesToUser(

"u_tong",[ "readWrite" , { role: "read", db: "tong" } ],

> )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

exif linux php扩展_LNMP环境为PHP添加exif扩展

在使用时 php报出如下错误: Call to undefined function gemvary\exif_imagetype()好吧,exif扩展没安装...通过 打印phpinfo() 查看得知 mbstring 扩展是有的,exif扩展没有如果mbstring也没有,也可以参考以下exif扩展的安装过程;安装过程基本…

宇视硬盘录像机onvif_视频监控系统中强大的录像机,兼容不同品牌,看看有哪些监控厂家...

选录像机,除路数、盘位和最大接入像素这些硬规格,大家还关注兼容性,例如好不好用、配置方不方便、使用流不流畅、录像稳不稳定等。偶尔也会有朋友问“TP的录像机可以搭配xx厂商的摄像机使用吗?”,答案当然是&#xff1…

python设置函数_在Python中设置函数签名

假设我有一个泛型函数f,我想以编程方式创建一个行为与f相同但具有自定义签名的函数f2。更多细节给定列表l和字典d,我希望能够:将f2的非关键字参数设置为l中的字符串将f2的关键字参数设置为d中的键,将默认值设置为d中的值假设我们有…

mysql新建数据表_Mysql创建数据库与表,并添加表的数据

首先,在成功安装Mysql的基础上,进入到cmd窗口,登录我们的mysql管理系统。登录方式:mysql -u用户名 -p密码如果出现Welcome to...等一大堆英文指示,则说明成功进入了mysql系统。因为我们不知道系统中有哪些库&#xff0…

mysql数据库管理维护_(转)Mysql数据库管理 表的维护

原文:http://t.dbdao.com/archives/mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86-%E8%A1%A8%E7%9A%84%E7%BB%B4%E6%8A%A4.html一、目标完成本课程后,你应该能够:认识不同类型的表维护操作执行维护表的SQL语句使用客户端和实用程序维护…

mysql如何使用事件_MySQL事件的使用详解

在系统管理或者数据库管理中,经常要周期性的执行某一个命令或者SQL语句。这个时候就会用到mysql事件,使用这个功能必须保证是mysql的版本是5.1以上。1.首先要查看事件是否开启了,SHOW VARIABLES LIKE event_scheduler;SELECT event_scheduler…

mysql 提交乱码问题_mysql数据库乱码问题

变量 a 的字符编码是由参数 CHARACTER_SET_CLIENT 决定的,假设此时编码为 A,也就是变量 a 的编码。2. 写入语句在发送到 MySQL 服务端之前的编码由 CHARACTER_SET_CONNECTION 决定,假设此时编码为 B。3. 经过 MySQL 一系列词法,语…

mysql5.5编译安装脚本_mysql5.5 免编译安装及脚本启动报错深入

Mysql安装环境简介:最近在做MHA。已经安装完毕heartbeat和drbd,现在准备安装Mysql。Mysql安装目录:/opt/mysqlMysql数据目录:/data/mysql备注:/data目录实际是drbd需要同步到备节点的磁盘分区[rootmysql1 src]# df -hF…

mysql 主键索引如何创建_SQL创建索引、主键

-- MySQL中四种方式给字段添加索引1)# 添加主键# ALTER TABLE tbl_name ADD PRIMARY KEY (col_list);# -- // 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。#添加唯一索引 -- UNIQUE 后面不用跟INDEX# ALTER TABLE tbl_name ADD UNIQU…

mysql查询20-30的数据_20. mysql查询表的数据大小

在需要备份数据库里面的数据时,我们需要知道数据库占用了多少磁盘大小,可以通过一些sql语句查询到整个数据库的容量,也可以单独查看表所占容量。1、要查询表所占的容量,就是把表的数据和索引加起来就可以了select sum(DATA_LENGTH…

requests由于系统缓冲区空间不足_系统C盘满了空间不足的扩容?

今天带来的是无需重新分区,无需删除逻辑分区的C盘容量扩大方法不重新或删除分区这就意味着无需重新安装软件、游戏等程序,也不用备份重要资料等操作,不影响电脑其它盘。统C盘满了是十分常见的问题,由于起初对C盘分区分的太小了&am…

mysql登陆三小时平均值图片_Mysql每小时平均值,间隔从半小时开始

我有一个mysql数据库,其中包含5分钟箱中的数据 . 我想从半小时开始创建每小时平均数据 . 通过使用mysql内置组:select date,AVG(AE) from mytable group by date(date),HOUR(date);会计算从01:00到02:00的平均值 . 相反,我希望从00:30到01:30…

mysql ip to int_ip网段转换程序(把ip地址转换成相对就的整数)

mysql教程_connect(localhost,root,root);mysql_select_db(dfd);$array file("ip.txt");foreach( $array as $k ){list ($ip,$s) explode(/,$k);$ipe str_replace(.0,.255,$ip);$ipint iptoint($ip);$ipinte iptoint($ipe);//echo iptoint($ip) .-.iptoint($ip…

postgre管理员 无法访问表_postgresql – 授予用户对所有表的访问权限

首先,您必须能够连接到数据库才能运行查询.这可以通过以下方式实现REVOKE CONNECT ON DATABASE your_database FROM PUBLIC;GRANT CONNECTON DATABASE database_nameTO user_name;REVOKE是必要的becauseThe key word PUBLIC indicates that the privileges are to be granted t…

mysql查询去年本月的数据_MySQL查询本周、上周、本月、上个月份数据的sql代码...

MySQL查询的方式很多,下面为您介绍的MySQL查询实现的是查询本周、上周、本月、上个月份的数据,如果您对MySQL查询方面感兴趣的话,不妨一看..查询当前这周的数据SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittim…

python xlwings api_2021-01-13python,xlwings,api运用,及一些问题

import xlwings as xwimport re#启动APP,visible:是否可见,addbook:是否新增工作簿appxw.App(visibleFalse,add_bookFalse)#APP是否可见app.display_alertsFalse#是否刷新APP屏幕app.screen_updatingFalse#文件路径filepathrC:\Users\*******…

python3+requests+unittest_python3+requests+unittest:接口自动化测试(一)

简单介绍框架的实现逻辑,参考代码的git地址:1.环境准备python3 pycharm编辑器2.框架目录展示(该套代码只是简单入门,有兴趣的可以不断后期完善)(1)run.py主运行文件,运行之后可以生成相应的测试报告,并以邮件形式发送…

python用筛选法求解小于n的所有素数_用筛选法求解n以内的所有素数

用筛选法求解n以内的所有素数:筛选法的思想是一个数是素数则这个数的所有的倍数都是合数,我们不去找素数而去找合数,剩下的就是素数了。一个合数其最大的质因子不会超过其开发数,所以只要迭代到其最大数的开方数即可 一个简单的筛素数的过程&…

mysql类似于excel的删除重复项_Excel去除重复项的三种常用技巧

在工作中,经常会有需要在对原始记录清单进行整理时,剔除其中一些重复项。所谓的重复项,通常是指某些记录在各个字段中都有相同的内容(纵向称为字段,横向称为记录),例如下面图中的第三行数据记录和第五行数据记录就是完…

cas java单点登录_java单点登录系统CAS的简单使用

http://blog.csdn.net/yunye114105/article/details/7997041参考:http://blog.csdn.net/diyagea/article/details/50638737(配置SSL协议)http://www.cnblogs.com/notDog/p/5264666.html背景有几个相对独立的java的web应用系统, 各自有自己的登陆验证功能…