Mongo(1): MongoDB4.28开启权限认证(用户密码登录)

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")

1

--->使用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");

1

使用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");

1

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

用户名和密码连接数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值