MongoDB默认安装完成后是不开启密码认证的,随便就能连接这样很不安全,记录一下如何开启认证访问
先在默认没有开启认证访问的MongoDB命令行中进行用户创建的操作:
创建管理员用户
> use admin
> db.createUser(
{
user: 'admin',
pwd: 'admin123',
roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]
}
)
创建普通用户
> use mydb # 这里直接怼一个该用户要使用的数据库名称就行,不用单独创建数据库
> db.createUser(
{
user: 'user1',
pwd: 'pwd123',
roles: ['readWrite', 'dbAdmin', 'userAdmin']
}
)
其他常用操作
查看已存在的用户
> db.system.users.find()
删除用户
> db.system.users.remove({user: 'user1'})
修改密码
> db.changeUserPassword('user1', 'newpwd')
创建好用户之后再继续下面操作
开启MongoDB认证登录配置
$ sudo vim /etc/mongodb.conf
# 修改下面一行
auth = true
# 改完后重启一下服务
$ sudo systemctl restart mongodb
使用认证远程访问
在远程客户端上使用认证方式访问数据库
$ mongo 192.168.1.1:27017 -u user1 -p pwd123