1. 创建超级管理员(root)和普通用户(gxpt)

#创建超级管理员(root)
RS1:PRIMARY> use admin
RS1:PRIMARY> db.createUser( 
  { user: "root", 
    pwd: "root", 
    roles: [ { role: "root", db: "admin" } ] 
  } 
); 
 
root用户所属admin数据库
RS1:PRIMARY>  db.auth('root', 'root');
1  返回1 则执行成功
#创建普通用户(gxpt)
#切换至gxpt数据库
RS1:PRIMARY>use gxpt
RS1:PRIMARY>db.createUser( 
  { user: "gxpt", 
    pwd: "gxpt", 
    roles: [ { role: "readWrite", db: "gxpt" } ] 
  } 
); 
gxpt用户所属gxpt数据库
认证用户(gxpt)
RS1:PRIMARY> db.auth("gxpt","gxpt");
1
1返回1 则执行成功
  1. 服务端确认当前用户

RS1:PRIMARY> use admin;
 switched to db admin
RS1:PRIMARY> show users;
{
        "_id" : "admin.root",
        "user" : "root",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ],
        "mechanisms" : [
                "SCRAM-SHA-1",
                "SCRAM-SHA-256"
        ]
}
RS1:PRIMARY> use gxpt;
switched to db gxpt
RS1:PRIMARY> show users;
{
        "_id" : "gxpt.gxpt",
        "user" : "gxpt",
        "db" : "gxpt",
        "roles" : [
                {
                        "role" : "readWrite",
                        "db" : "gxpt"
                }
        ],
        "mechanisms" : [
                "SCRAM-SHA-1",
                "SCRAM-SHA-256"
        ]
}
}用户权限如下  
用户  
角色                      
身份
root 
root
超级管理员
gxpt
readWrite
普通用户
 
  1. 未开启AUTH认证

    1. root用户登录

新建数据库
ok
删除数据库
ok
    1. gxpt用户登录

新建数据库
ok
删除数据库
ok
结论:未启用AUTH,普通用户可以对任何数据库做 创建、删除操作!!!
因此为了规避不规范操作,必须开始Mongo的AUTH认证
 
  1. 官方文档对于角色 <root>的描述

可见:角色<root>是涵盖 readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase, clusterAdmin, restore, and backup等角色的超级角色
 
  1. 生成秘钥文件

[root@MongoDB236 ~]# openssl rand -base64 100 > /opt/var/data/mongodb/mongodb.key
[root@MongoDB236 ~]# chmod 600 /opt/var/data/mongodb/mongodb.key
请根据初始化参数文件指定该文件名称及目录
远程拷贝至其他节点
[root@MongoDB236 ~]# scp /opt/var/data/mongodb/mongodb.key 192.168.8.237:/opt/var/data/
[root@MongoDB236 ~]# scp /opt/var/data/mongodb/mongodb.key 192.168.8.238:/opt/var/data/
 
  1. 修改初始化参数文件 xxxx.conf文件

。。。
keyFile=/opt/var/data/mongodb/mongodb.key
auth=true
。。。
请放开以上参数
  1. 分别在三个节点重新启动MongoDB

[root@MongoDB236 ~]# service mongodb stop
[root@MongoDB236 ~]# service mongodb start
 
  1. 开启AUTH认证

需要在未启用AUTH的情况下对 admin 和 gxpt启用认证。
> db.auth("admin","admin");
1
> db.auth("gxpt","gxpt");
1
返回1 表明操作正常
 
[root@Mongodb237 mongodb]# mongo -usuper -psuper 127.0.0.1/admin
MongoDB shell version v4.0.0
MongoDB server version: 4.0.0
> db;db;
admin
> show dbs;show dbs;
admin  0.000GB
gxpt   0.000GB
local  0.000GB
ok
 
 
    1. root用户登录

super用户对gxpt数据库创建collection
ok
super用户对gxpt数据库创建collection
Ok
 
    1. gxpt用户登录

gxpt只对gxpt数据库有读写权限,因此可以正常 创建、删除collection
对于其他数据库没有读写权限!!!因此其他数据库不可见
借用客户端对其他库创建collection 报错:未经过认证
结论:启用AUTH之后,普通用户只对所属的数据库有操作权限。
 

MongoDB AUTH结果验证及开启方法的更多相关文章

  1. MongoDB AUTH结果验证

      创建超级管理员和普通用户 #创建超级管理员 super db.createUser( { user: "super", pwd: "super", role ...

  2. 关于Mysql5.6半同步主从复制的开启方法【转】

    介绍 先了解一下mysql的主从复制是什么回事,我们都知道,mysql主从复制是基于binlog的复制方式,而mysql默认的主从复制方式,其实是异步复制. 主库实际上并不关心从库是否把数据拉完没有, ...

  3. mongodb添加登陆验证

    mongodb添加登陆验证 转载地址 清空log,db目录 mongod --auth --logpath "D:\mongodb\log\log.log" --logappend ...

  4. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

    SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...

  5. Django Auth模块及User对象方法

    一:Django的用户认证 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1:authenticat ...

  6. EMF学习,为了实现可扩展可自定义的模型验证 - 各种实现方法学习

    自: http://blog.csdn.net/javaman_chen/article/details/6057033 http://www.ibm.com/developerworks/cn/op ...

  7. EasyUI 验证框使用方法

    使用过程中的一积累,备查. EasyUI 验证框使用方法://***************************missingMessage:未填写时显示的信息validType:验证类型见下示例 ...

  8. oracle RAC--归档日志的开启方法

    oracle RAC--归档日志的开启方法 2011-10-07 15:53:04 分类: Oracle oracle RAC--归档日志的开启方法   ======================= ...

  9. Oracle高版本导出dmp导入Oracle低版本报错:"不是有效的导出文件、头部验证失败"解决方法

    从Oracle高版本中导出dmp,然后导入到Oracle低版本时会报错:"不是有效的导出文件.头部验证失败",解决方法: 方法一:下载软件:AlxcTools,打开后选择要修改的文 ...

随机推荐

  1. 3、Finished with error: FormatException: Bad UTF-8 encoding 0xc3 (at offset 169)

    这是由于 app 的版本为 release 找不到 keystore 文件, 我们只需要在 app 下的 build.gradle 文件中修改为 signingConfigs.debug 即可: bu ...

  2. bugfree3.0.1-BUG解决方案修改

    该篇内容来自文档“masterBugFree2.pdf”,记录在这里. 1.如何将解决方案改为中文 在\Bugfree\Lang\ZH_CN_UTF-8 \_COMMON.php 文件中做如下修改/* ...

  3. Python Scrapy爬虫速成指南

    序 本文主要内容:以最短的时间写一个最简单的爬虫,可以抓取论坛的帖子标题和帖子内容. 本文受众:没写过爬虫的萌新. 入门 0.准备工作 需要准备的东西: Python.scrapy.一个IDE或者随便 ...

  4. alias用法

    echo 'alias msfconsole="pushd $HOME/git/metasploit-framework && ./msfconsole && ...

  5. Kafka笔记1(初步认识)

    Kafka 被称为“分布式提交日志”或“分布式流平台” 文件系统或数据库提交日志用来提供所有事务的持久记录,通过重放这些日志重建系统状态,同时Kafka数据是按照一定顺序持久化保存的,可以按需读取 K ...

  6. caffe-ssd的GPU在make runtest的时候报错:BatchReindexLayerTest/2.TestGradient,where TypeParam=caffe::GPUdevice(<float>)(<double>)

    make runtest报错:BatchReindexLayerTest/2.TestGradient,where TypeParam=caffe::GPUdevice<float> Ba ...

  7. MongoSpark 28799错误

    Exception : . The full response is { , "codeName" : "Location28799" } at com.mon ...

  8. vuejs服务端渲染更好的SEO,SSR完全指南Nuxt.js静态站生成器

    vuejs服务端渲染更好的SEO,SSR完全指南Nuxt.js静态站生成器SSR 完全指南https://cn.vuejs.org/v2/guide/ssr.html在 2.3 发布后我们发布了一份完 ...

  9. 看懂MSSQL执行计划,分析SQL语句执行情况

    打开SQL执行计划窗口 执行计划的图表是从右向左看的 SQL Server有几种方式查找数据记录 [Table Scan] 表扫描(最慢),对表记录逐行进行检查 [Clustered Index Sc ...

  10. 微信公众号开发流程,jssdk的使用以及签名算法的实现

    一 开发流程 1 基本配置-登录自己的公众号 A:新型微信认证,认证过的企业号才可以进行自定义菜单中的连接跳转: B:开发基本配置里面进行开发者iD查询,密码查询和重置和ip白名单配置: C:公众号设 ...