MongoDb分片集群认证

本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html), MongoDb分片集群认证几个主要流程

1.在分片集群环境中,副本集内成员之间需要用keyFile认证,mongos与配置服务器,副本集之间也要keyFile认证,集群所有mongod和mongos实例使用内容相同的keyFile文件
(1)在其中一台机器上生成keyfile

openssl rand -base64 753  > keyfile
sudo chmod 400 keyfile

(2)将keyfile放置在<path-to-keyfilie>路径

2.建立管理员账号,赋所有权限(admin和config数据库)

use admin
db.createUser({user: "admin",pwd: "123456",roles: [ { role: "root", db: "admin" } ]}) #root所有权限
db.auth("admin","123456")use config
db.createUser({user: "admin",pwd: "123456",roles: [ { role: "root", db: "admin" } ]}) #root所有权限
db.auth("admin","123456")

3.关闭所有mongod、mongos、configsvr,编辑配置文件,重新启动每台服务器每个实例

为每一个mongod、mongos、配置服务器的实例其中的配置文件添加认证属性或者在启动实例时添加--authorization、--keyFile选项

[mongo@mongo3 ~]$ vi services/configsvr/mongod.conf
#mongod.conf 添加以下配置
security:authorization: enabled  #若启动实例报错,可删除该行keyFile: /home/mongo/services/keyfile
[mongo@mongo3 ~]$ ./mongod -f services/configsvr/mongod.conf 

其他实例如下

[mongo@mongo3 ~]$ vi services/shard1/mongod.conf#mongod.conf 添加以下配置
security:authorization: enabled  #若启动实例报错,可删除该行keyFile: /home/mongo/services/keyfile[mongo@mongo3 ~]$ ./mongod -f services/shard1/mongod.conf[mongo@mongo1 ~]$ vi services/shard2/mongod.conf#mongod.conf 添加以下配置
security:authorization: enabled  #若启动实例报错,可删除该行keyFile: /home/mongo/services/keyfile[mongo@mongo1 ~]$ ./mongod -f services/shard2/mongod.conf[mongo@mongo1 ~]$ vi services/shard3/mongod.conf#mongod.conf 添加以下配置
security:authorization: enabled  #若启动实例报错,可删除该行keyFile: /home/mongo/services/keyfile[mongo@mongo1 ~]$ ./mongod -f services/shard3/mongod.conf[mongo@mongo2 ~]$ vi services/mongos/mongos.conf#mongod.conf 添加以下配置
security:authorization: enabled  #若启动实例报错,可删除该行keyFile: /home/mongo/services/keyfile[mongo@mongo2 ~]$ ./mongos -f services/mongos/mongos.conf

4.admin连接mongo集群

[mongo@mongo3 ~]$ ./mongo 172.16.0.192:27017/admin -u admin -p 123456

5.为指定数据库添加访问用户,本文为testShard数据库

use testShard
db.createUser({user:"test",pwd:"test",roles:[{role:"readWrite", db:"testShard"} #读写权限]}
)
db.auth("test","test")

6.test访问mongo集群,只有testShard的数据读写权限

[mongo@mongo3 ~]$ ./mongo 172.16.0.192:27017/testShard -u test -p test
MongoDB shell version v4.0.3
connecting to: mongodb://172.16.0.192:27017/testShard
Implicit session: session { "id" : UUID("e0f8bf3f-83d7-432c-ba4c-c063d865380e") }
MongoDB server version: 4.0.3

 

用户和角色方法
详细参见官方文档:
https://docs.mongodb.com/manual/reference/method/#role-management

查看角色信息
use admin
db.getRole("rolename",{showPrivileges:true})

删除角色
use admin
db.dropRole("rolename")

系统内置用户角色
大部分内置的角色对所有数据库共用,少部分仅对admin生效

数据库用户类

read
非系统集合有查询权限

readWrite
非系统集合有查询和修改权限

数据库管理类

dbAdmin
数据库管理相关,比如索引管理,schema管理,统计收集等,不包括用户和角色管理

dbOwner
提供数据库管理,读写权限,用户和角色管理相关功能

userAdmin
提供数据库用户和角色管理相关功能

集群管理类

clusterAdmin
提供最大集群管理权限

clusterManager
提供集群管理和监控权限

clusterMonitor
提供对监控工具只读权限

hostManager
提供监控和管理severs权限

备份和恢复类

backup
提供数据库备份权限
restore
提供数据恢复权限

All-Database类

readAnyDatabase
提供读取所有数据库的权限除了local和config数据库之外

readWriteAnyDatabase
和readAnyDatabase一样,除了增加了写权限

userAdminAnyDatabase
管理用户所有数据库权限,单个数据库权限和userAdmin角色一样

dbAdminAnyDatabase
提供所有用户管理权限,除了local,config


超级用户类

root
数据库所有权限

内部角色

__system
提供数据库所有对象任何操作的权限,不能分配给用户,非常危险

转载于:https://www.cnblogs.com/woxingwoxue/p/9888897.html

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

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

相关文章

汉克尔变换matlab,HankelTransform

HankelTransform所属分类&#xff1a;matlab例程开发工具&#xff1a;matlab文件大小&#xff1a;135KB下载次数&#xff1a;66上传日期&#xff1a;2011-09-17 13:41:39上 传 者&#xff1a;甜头说明&#xff1a; Matlab Hankel变换源代码&#xff0c;可以直接当做MATLAB too…

【材质】色彩基础

RBG颜色空间 目前&#xff0c;绝大部分显示器采用的是RGB颜色标准&#xff0c;因此几乎所有软件也采用此标准&#xff0c;UE4也不例外。 R、G、B这三个字母分别代表红色&#xff08;red&#xff09;、绿色&#xff08;green&#xff09;、蓝色&#xff08;blue&#xff09;三条…

使用mintty(_如何使用Mintty改善Cygwin控制台

使用mintty(Cygwin’s great for getting some Linux command-line goodness in Windows, but using the Windows Shell to access it kills some of that magic. Using Mintty and a few other methods, you can make the experience much more luxurious. Cygwin非常适合在Wi…

18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)

phpmyadmin 4.8.1 远程文件包含漏洞&#xff08;CVE-2018-12613&#xff09; phpMyAdmin是一套开源的、基于Web的MySQL数据库管理工具。其index.php中存在一处文件包含逻辑&#xff0c; 通过二次编码即可绕过检查&#xff0c;造成远程文件包含漏洞。 受影响版本: phpMyAdmin 4.…

开源php面板,宝塔面板nginx安装终于搞定了

server{listen 80;server_name lvyou.yssknet.com;index index.php index.html index.htm default.php default.htm default.html;root ***********/public;#SSL-START SSL相关配置&#xff0c;请勿删除或修改下一行带注释的404规则#error_page 404/404.html;#SSL-END#ERROR-PA…

[Erlang 0004] Centos 源代码编译 安装 Erlang

由于最终部署的生产环境是Centos&#xff0c;所以我需要在Centos中安装Erlang B13R04 &#xff0c;第一次做这件事情破费周折&#xff0c;主要是对Erlang依赖的库不熟悉&#xff0c;总是编译不过&#xff1b;这里梳理一下安装过程中的细节&#xff1a; Erlang依赖哪些库&#x…

关于“Python”的核心知识点整理大全38

14.1.1 创建 Button 类 由于Pygame没有内置创建按钮的方法&#xff0c;我们创建一个Button类&#xff0c;用于创建带标签的实心矩形。 你可以在游戏中使用这些代码来创建任何按钮。下面是Button类的第一部分&#xff0c;请将这个类保存为 文件button.py&#xff1a; button.py …

同步您的Google Chrome书签,主题等

Do you regularly use Google Chrome on multiple computers? Here’s how you can keep almost everything in your browser synced easily in Google Chrome. 您是否经常在多台计算机上使用Google Chrome&#xff1f; 您可以通过以下方法在Google Chrome浏览器中轻松同步浏…

Python中函数的参数传递与可变长参数

转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型&#xff1a; &#xff08;1&#xff09;像C一样的默认缺省函数 &#xff08;2&#xff09;根据参数名传参数 &#xff08;3&#xff09;可变长度参数 示例如下&#xff1a; &#xff08…

matlab的plot没有反应,用plot画图没有反应

本帖最后由 躺着看雨 于 2018-6-7 10:35 编辑0.0854232732222489 -1.47227270375083e-08 17.0844721322814 17.08465464444980.0854232767446789 -1.41282430199396e-08 17.0844728367686 17.08465534893580.0854232802671089 …

转]MATLAB 与 C 语言的接口

MATLAB 到 C 语言程序的转换可以由两种途径完成&#xff0c;其一是 MATLAB 自己提供的 C 语言翻译程序 mcc, 另一种是原第 3 方公司 MathTools 开发的 MATCOM。后者出现较早&#xff0c;功能远比 MATLAB 自己的翻译程序强大&#xff0c;所以 MathTools 公司已经被 MathWorks 公…

找call写call_如何将Google Call Widget添加到任何网页

找call写callAdding a Google Call Widget to your website or blog allows visitors to contact you using your Google Voice number. The widget provides an easy and cost-effective way to provide live customer support without the customer knowing your real number…

XML与web开发-01- 在页面显示和 XML DOM 解析

前言&#xff1a; 关于 xml 特点和基础知识&#xff0c;可以菜鸟教程进行学习&#xff1a;http://www.runoob.com/xml/xml-tutorial.html 本系列笔记&#xff0c;主要介绍 xml 在 web 开发时需要了解的知识 XML 在页面显示数据 XML 指可扩展标记语言&#xff08;eXtensible Mar…

酷安应用市场php源码,酷安应用市场 v11.0.3-999 去广告极限精简版

酷安&#xff0c;真实有趣的数码社区。酷安app&#xff0c;国内安卓应用市场客户端&#xff0c;应用资源丰富&#xff0c;应用开发者水准高&#xff0c;应用无首发Logo&#xff0c;原汁原味上架&#xff0c;得到了安卓用户群广泛认可。有人说现在的酷安市场(酷安网)没有以前那么…

再战android-语音识别2(修改配置)

可怕的半桶水一直在晃。程序中需要根据用户的选择设置语音识别的语言&#xff08;目前科大讯飞支持英文、普通话、粤语&#xff09;&#xff0c;不想每次要用户去IatSetting中去改&#xff0c;需要能直接修改IatSetting的设置。之前移植的IatSetting页面没有细究&#xff0c;直…

chromebook刷机_如何将网站添加到您的Chromebook架子上

chromebook刷机Bookmarks are great to keep your favorite sites nearby, but they aren’t the fastest option out there. Instead, why not add shortcuts for your favorite websites right on the Chromebook shelf? 书签可以很好地将您喜欢的网站保留在附近&#xff0c…

php判断外链,php检查字符串中是否有外链的方法

这篇文章主要介绍了php检查字符串中是否有外链的方法,涉及php针对字符串的正则匹配的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下本文实例讲述了php检查字符串中是否有外链的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;/*** is_external_link 检测字符…

【经验分享】产品、运营人如何告别重复的数据分析工作?

我是一名互联网的运营打杂MM&#xff0c;除了每天繁忙的工作&#xff0c;每周、每月的数据汇报也是我头疼的东东。因为本身我不聪明&#xff0c;数学也不是太好&#xff0c;对数据不那么爱&#xff0c;而且还要做数据分析&#xff0c;对于我这种数据小白分分钟崩溃。每周、每月…

JVM虚拟机调参

JVM虚拟机调参 一、堆大小设置JVM 中最大堆大小有三方面限制&#xff1a;相关操作系统的数据模型&#xff08;32-bt还是64-bit&#xff09;限制&#xff1b;系统的可用虚拟内存限制&#xff1b;系统的可用物理内存限制。32位系统下&#xff0c;一般限制在1.5G~2G&#xff1b;64…

Locktopus锁定iOS设备上的单个应用程序

If you want to share a cool game on your iOS device but not let everyone read your email, Locktopus offers a simple app-by-app lockdown solution. 如果您想在iOS设备上共享一个很棒的游戏&#xff0c;但又不想让所有人都阅读您的电子邮件&#xff0c;那么Locktopus提…