MongoDB数据库在默认是没有用户名及密码,无安全验证的,只要连接上服务就可以进行CRUD操作。
Mongol安全认证启动方式有两种:
1.配置文件启动
需要安全认证则修改配置文件/etc/MongoDB.conf,打开auth的注释,设置为auth = true。没有就添加
执行命令 :mongod -f D:\mongodb\conf\mongo.conf
D:\mongodb\conf\mongo.conf:表示mongo配置文件路径
2.命令直接启动
无安全认证命令 :mongod --fork --dbpath=/var/lib/mongo --logpath=/var/log/mongodb/mongod.log --logappend
有安全认证命令 :mongod --fork --dbpath=/var/lib/mongo --logpath=/var/log/mongodb/mongod.log --logappend --auth
说明:"--fork"表示一种后台Daemon方式启动。值得注意的是,用到了"--fork"参数就必须启用"--logpath"参数
--dbpath:为数据存放位置
--logpath 表示日志文件存放的路径
--logappend 表示以追加的方式写日志文件
--auth 开启安全认证
3.先使用无安全认证命令启动mongo
注:mongo 2.6版本之前使用>db.addUser(“root”, “root”);之后版本使用:db.createUser({user:"root",pwd:"Mongo2018!",roles:[{role:"readWrite",db:"admin"}]}
操作步骤:
超级用户角色
root(包含
readAnyDatabase,读任何数据库
readWriteAnyDatabase, 读写任何数据库
dbAdminAnyDatabase, 读写admin下所有数据库
userAdminAnyDatabase, 管理所有数据库用户)
> use admin
建立超级用户
>db.createUser({user:"root",pwd:"Mongo2018!",roles:[{role:"root",db:"admin"}]})
创建普通用户
>db.createUser({user:"aaa",pwd:"xxx",roles:[{role:"readWriteAnyDatabase",db:"admin"}]}
注:如果要建立指定数据库用户名,则要切入到指定数据库
>db.system.users.find() 查看所有用户
>db.system.users.remove({user:"radacat"}) 删除用户
>exit
>ps -ef|grep mongo
>kill -9 pid
>安全认证命令启动
>use admin
>db.auth("root","xxx")