MongoDB4.28开启权限认证配置用户密码登录功能

目录
  • 1、查看是否开启认证登录
  • 2、开启用户名和密码认证(创建用户均需进入admin数据库)
    • 2.1、为admin数据库创建管理员账号
    • 2.2、为数据库mytest创建普通用户
    • 2.3、配置文件开启用户名密码认证
  • 3、重启mongo服务
  • 4、mongo授权访问
    • 4.1、admin数据库授权登录
    • 4.1、mytest数据库授权登录

MongoDB默认不启用授权认证,只要能连接到该服务器,就可连接到mongod。若要启用安全认证,需要更改配置文件mongdb.conf中的参数auth。

MongoDB的用户是跟数据库相关联的,具体的数据库,需要有对应的用户,超级管理员也不能操作其他数据库的。

MongoDB存储所有的用户信息在admin 数据库的集合system.users中,保存用户名、密码和数据库信息。

MongoDB开启权限认证:配置用户名和密码认证登录,操作步骤:

1、查看是否开启认证登录

$cd /usr/local/mongodb/bin
$cat mongodb.conf

#数据文件存放目录
dbpath = /usr/local/mongodb/data
#日志文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log
logappend=true
#端口
port = 27017
#以守护程序的方式启用,即在后台运行
fork = true
#认证模式(true代表开启认证登录,false代表未开启认证登录)
auth=false   
#远程连接
bind_ip=0.0.0.0

2、开启用户名和密码认证(创建用户均需进入admin数据库)

2.1、为admin数据库创建管理员账号

1、数据库admin创建管理员账号

[root@hadoop-master bin]# mongo
> use admin
> db.createUser({user:"root",pwd:"lianshi",roles:["root"]})

2、查看目前用户

> show users

2.2、为数据库mytest创建普通用户

1、给数据库mytest创建cg用户

>use mytest
> db.createUser({user:"cg",pwd:"lianshi",roles:[{role:"readWrite",db:"mytest"}]})

2、查看目前用户

> show users
>db.system.users.find()命令可以查看新创建的用户

2.3、配置文件开启用户名密码认证

#认证模式(true代表开启认证登录,false代表未开启认证登录)
auth=true

3、重启mongo服务

[root@hadoop-master bin]# ps -ef |grep mongo
[root@hadoop-master bin]# kill -9 15231
$./mongod -f mongodb.conf

4、mongo授权访问

4.1、admin数据库授权登录

1、mongo访问

[root@hadoop-master bin]# mongo
> use admin
switched to db admin
> show users
2020-06-21T20:14:59.735+0800 E  QUERY    [js] uncaught exception: Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1638:15
shellHelper.show@src/mongo/shell/utils.js:883:9
shellHelper@src/mongo/shell/utils.js:790:15
@(shellhelp2):1:1 -->授权配置并重启后,此时查看用户,会发现没有权限

2、用用户和密码登录

> db.auth("root","lianshi")

--->使用db.auth(“root”,”lianshi”)启用auth认证,看到返回的值为1,这就表示启动成功了,然后我们再使用命令查看用户和数据库。

4.1、mytest数据库授权登录

1、mongo访问

> use mytest;
switched to db mytest
> show users
2020-06-21T21:25:41.293+0800 E  QUERY    [js] uncaught exception: Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1638:15
shellHelper.show@src/mongo/shell/utils.js:883:9
shellHelper@src/mongo/shell/utils.js:790:15
@(shellhelp2):1:1 --->报错没有权限

2、用户和密码登录用户

> db.auth("cg","lianshi");

使用db.auth(“cg”,”lianshi”)启用auth认证,看到返回的值为1,这就表示启动成功了,然后我们再使用命令查看用户和数据库。

> show dbs
mytest  0.000GB
>  db.student.insert({"id":"2","name":"yxy"})
WriteResult({ "nInserted" : 1 })

其他用户命令:

1、创建普通用户(创建用户cg,对mytest数据库读写权限)

> db.createUser({user:"cg",pwd:"lianshi",roles:[{role:"readWrite",db:"mytest"}]})

2、删除用户>db.dropUser("yonghu")

3、修改用户密码

db.updateUser("cg",{pwd:"123456"})

4、进入数据mytest,用户名密码认证

> db.auth("cg","lianshi");

5、客户端工具授权登录连接mongo数据库

用户名和密码连接数据库

到此这篇关于MongoDB4.28开启权限认证配置用户密码登录功能的文章就介绍到这了,更多相关MongoDB权限认证登录内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MongoDB开启权限认证的方法步骤详解

    前言 最近在生产环境中MongoDB已经使用有一段时间了,但对于MongoDB的数据存储一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),最近在酷壳网看了一篇技术文章(https://coolshell.cn/?s=从+MONGODB+"赎金事件"+看安全问题&from=timeline&isappinstalled=0)介绍的mongodb未开启权限认证导致数据被黑客窃取,要比特币赎回的事件,考虑到数据安全的原因特地花了一点时间研究了一下,我现在用的版

  • Mongodb 3.2.9开启用户权限认证问题的步骤详解

    前言 大家在Mongodb安装好后,一般不需要用户名密码就可以直接使用,开发者认为只要使用环境足够安全,可以不使用认证,但是在实际使用中为了数据的安全,大多人还是选择了开启权限认证. 一.在老版的Mongodb(大概3.0以前)可以这样开启认证: 1.Linux环境下mongo shell方式认证: >show dbs ##看到有如下数据 admin (empty) comment 0.203125GB dbtest (empty) foo 0.203125GB local (empty) te

  • MongoDB4.28开启权限认证配置用户密码登录功能

    目录 1.查看是否开启认证登录 2.开启用户名和密码认证(创建用户均需进入admin数据库) 2.1.为admin数据库创建管理员账号 2.2.为数据库mytest创建普通用户 2.3.配置文件开启用户名密码认证 3.重启mongo服务 4.mongo授权访问 4.1.admin数据库授权登录 4.1.mytest数据库授权登录 MongoDB默认不启用授权认证,只要能连接到该服务器,就可连接到mongod.若要启用安全认证,需要更改配置文件mongdb.conf中的参数auth. MongoD

  • Spring Security使用数据库认证及用户密码加密和解密功能

    流程图: 1.接上一篇博客https://mp.csdn.net/console/editor/html/104576494,准备好环境. 2.spring-security.xml中的配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="

  • MySQL 创建用户、授权用户、撤销用户权限、更改用户密码、删除用户(实用技巧)

    MySQL创建用户并授权及撤销用户权限 运行环境:MySQL5.0 一.创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆mysql服务器.

  • 详解MySQL的用户密码过期功能

    Payment Card Industry,即支付卡行业,PCI行业表示借记卡.信用卡.预付卡.电子钱包.ATM和POS卡及相关的业务. PCI DSS,即PCI数据安全标准(Payment Card Industry Data Security Standard)是由PCI安全标准委员会制定,旨在使国际上采用一致的数据安全措施. PCI DSS标准要求用户每隔90天必须更改他们的密码.那么MySQL数据库该怎样适应这个情况?幸运的是,在MySQL版本5.6.6版本起,添加了password_e

  • PHP cookie,session的使用与用户自动登录功能实现方法分析

    本文实例讲述了PHP cookie,session的使用与用户自动登录功能实现方法.分享给大家供大家参考,具体如下: cookie的使用 //生成cookie //注释:setcookie() 函数必须位于 <html> 标签之前. //setcookie(name, value, expire, path, domain); //名称,值,过期时间,有效路径,有效域名 //path,可选:如果路径设置为 "/",那么 cookie 将在整个域名内有效.如果路径设置为 &q

  • 通过jquery.cookie.js实现记住用户名、密码登录功能

    Cookies 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquery,再引入:jquery.cookie.js: 下载:http://plugins.jquery.com/cookie/ <script type="text/javascript" src="js/jquery.min.js"></script> <sc

  • WordPress一键切换为其他用户身份登录功能方法

    今天小编在看公众号的时候发现,有人反映不能充VIP,但是小编自己登录查看一切正常,又解释不清楚,怎么办?于是问他要账号密码,登录上去看看.但是每次都找用户要账号密码,多少有点麻烦和不智能,还让人感觉麻烦和反感,So,将下面这段代码放入 functions.php 可以让管理员快速登录其他用户的账户. 今天,我们用纯代码来解决这个问题,并中文显示. /** * WordPress 后台管理员免密一键切换其他账号登录 */ function wpdx_user_switch_action($acti

  • vue路由跳转时判断用户是否登录功能的实现

    通过判断该用户是否登录过,如果没有登录则跳转到login登录路由,如果登录则正常跳转. 一丶首先在用户登录前后分别给出一个状态来标识此用户是否登录(建议用vuex): 简单用vuex表示一下,不会可以自己去官网多看看: import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); var state = { isLogin:0, //初始时候给一个 isLogin=0 表示用户未登录 }; const mutations = { cha

  • 利用Django内置的认证视图实现用户密码重置功能详解

    前言 密码重置功能相信对大家来说都不陌生,本文主要给大家介绍了关于使用Django内置的认证视图实现简单的通过邮箱重置密码的功能,分享出来供大家参考学习,下面话不多说了,来一起来看看详细的介绍吧. 版本: django 1.11 实现方法 在django.contrib.auth.views中提供了四个类视图用于密码重置 class PasswordResetView URL name: password_reset  #要保持相同 通过给邮箱发送重置密码的链接进行密码重置.注意如果邮箱不存在,

随机推荐