mongodb5.0开启认证,设置用户名和密码
1.修改mongod.conf配置
输入命令编辑配置文件:
vim /etc/mongod.conf
加入以下内容:
security:
authorization: enabled
2.进入mongo命令行
1.输入命令,进入mongo命令行
mongo --port 27017
2.切换到admin库,查看auth认证方式
use admin
db.system.version.findOne({"_id":"authSchema"})
3.删除之前设置的所有用户和auth认证方式
注意线上环境慎重用,如果要用,记得先记录下已有的用户、密码、角色修改好后再重新创建
#查看已存在的用户
use admin
db.system.users.find()
#移除所有用户
db.system.users.remove({})
4.将认证方式设置为SCRAM-SHA-1
输入命令:
#值为3表示:MONGODB-CR
#值为5表示:SCRAM-SHA-1
#查看认证方式,如果为null,则插入
use admin
db.system.version.findOne({"_id":"authSchema"})
db.system.version.insert({"_id":"authSchema","currentVersion":5})
我这里图片上为了演示更新语句故意设置成了3,一定要设置成5,设置成3时创建用户时会报错
已存在认证方式,且值不为5时执行更新语句
use admin
db.system.version.update({ _id: "authSchema" },{ $set: {currentVersion: 5}});
5.重新添加admin用户(超级管理员),注意我这里密码设置得简单正式要设置强密码
use admin
db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
重启mongodb
systemctl restart mongod
systemctl status mongod
创建普通用户:
#dbname换为需要的数据库名字
#dbuser换为需要的用户名
#pwd换为需要的密码
use dbname
db.createUser({user:"dbuser",pwd:"pwd",roles:[{role:"dbOwner",db:"dbname"}]})
测试一下,第一次输入了错误的密码,连接失败了,第二次正确输入密码成功连接
mongo -u admin -p --authenticationDatabase admin
修改成功!