开启用户认证
MongoDB数据库默认是没有用户名及密码的,没有权限访问限制,我们可以直接登录做任务操作。
但是为了方便数据库的管理和安全,应启动认证和创建数据库用户。
下面是错误示范:
#启用认证后,仍然可以直接登录,但无权限做数据操作,但可以创建用户
#开启用户认证有两种方法:
#方法1:命令行方式,"--auth"参数 mongod --auth --port 27017 --dbpath /data/db
#方法2:修改配置文件
cat >> /etc/mongo.conf <<EOF
security:
authorization: enabled
EOF
systemctl restart mongod
用户的创建
基于指定数据库,即用户存放的特定数据库(验证库 test)
创建MongoDB的超级管理员
创建超级管理员root(也可以是任意用户名)管理所有数据库。(必须use admin再去创建,因为超级用户是存在admin库中的)
##1.创建mongo的超级管理员
use admin
db.createUser({user:"root",
pwd:"123456",
roles:[{
role:"root",
db:"damin"
}]
})
#验证用户
use admin
db.auth('root','123456')
##2.修改配置文件
cat >> /etc/mongo.conf <<EOF
security:
authorization: enabled
EOF
#重启mongodb
systemctl restart mongod
#or
mongod -f /etc/mongo.conf --shutdown
mongod -f /etc/mondo.conf
使用 mongosh 直接进入MongoDB中查看库和表会显示错误信息
因为前面我们进行了用户认证,必须进行“验证用户”才可以查看内容
#验证用户
use admin
db.auth('root','123456')
#root用户保存在admin库的users集合中
use admin
db.system.users.find()
#修改密码
db.changeUserPassword('用户名','新密码')
#删除用户
use <验证库>
db.dropUser("用户名")
文章评论