mongo添加用户认证
安装完mongo后,启动mongo
在mongo shell中执行:use admin
查看当前用户的情况:
db.system.users.find().pretty()
创建新用户,用户名为 root。注意,这里的权限问题一定要明确,如果一个用户拥有最高的权限,每个文档都能执行读写命令,那么按照下面写就行。如果要分权分档,则需要在roles中写明文档名称,并赋予读或者写的权限。
db.createUser({
user:"root",
pwd:"W1tdLCB7fSwgeyJjYWxsYmFja3MiOiBudWxsL",
roles:[{role:"userAdminAnyDatabase", db:"admin"}, "readWriteAnyDatabase"]})
这里另外说一下,如果不小心权限搞错了,最快的方式就是删掉重建。步骤很简单:
删除我们自己建立的用户。
db.dropUser("root")
重新执行添加用户的操作。
重启mongod即可。
mongo4.0的认证方式与之前版本相比较是有区别的,不再是在配置文件中修改auth=True。对应的修改如下:
mongodb.conf文件,安装方式不同,配置文件名称可能不同,但都很类似,一般在/etc/mongodb.conf下,具体执行情况大家find一下就行。
#security:
security:
authorization: enabled
配置文件截图为:
重启mongod:
systemctl restart mongod
mongo备份和恢复命令
主要针对带认证的mongodb的备份和恢复
- 备份命令行为:
mongodump -h 127.0.0.1 --authenticationDatabase admin -u root -d test -o /opt/mongo_dump_data/
参数:
- -h mongo服务器地址,端口号默认为27017
- –authenticationDatabase 认证的库,一般为admin
- -u 登录用户名
- -d 要导出哪个文档(库)
- -o 导出的位置,前提是该路径必须存在
回车之后,输入密码即可导出,导出的文件结构如下所示:
- 恢复命令行为:
mongorestore -h 127.0.0.1 --authenticationDatabase admin -u root -d test --dir /opt/mongo_dump_data/test/
参数:
–dir 从哪个文件目录导出,即数据来源
导出成功。
另外,由于在新建用户时赋值的权限可能有问题,一旦遇到权限报错,最快的方式就是先关闭认证,先把数据导入,然后进一步确认登陆账号与文档(库)的权限问题。
关闭认证将配置文件修改为:
#security:
security:
authorization: disabled
重启即可。