MongoDB设置权限
MongoDB设置权限
-
输入命令行mongo,进入mongodb环境
mongo
-
切换到admin 数据库
use admin
-
给admin设置用户密码
- user:用户名
- pwd:密码
- roles:
db.createUser({user: 'root', pwd: 'admin_mima', roles: ['root']})
-
验证是否成功,db.auth(用户名,密码)
db.auth('root','admin_mima')
如果返回1标拾验证成功,如果是0 则表示验证失败
-
以上步骤是给root设置密码,如果要给特定的库设置权限,打比方test_demo库,切换到数据库test_demo
use test_demo
-
为test_demo添加用户,并且赋予权限
db.createUser({ user: 'herry', pwd: 'herry_mima', roles: [{ role: 'readWrite', db: 'test_demo' }] })
这行代码意思是 创建一个herryl用户 给予读写权限 db表示该用户操作的数据库名。
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限 -
一切搞定,重新开机mongodb,通过增加
--auth
开启安全登录mongod --dbpath /www/server/mongodb/data --auth
-
给数据库添加用户访问权限或者修改密码
db.addUser('user','pwd') db.auth('user','pwd') //修改用户密码 一定要经过admin验证才可以执行 db.changeUserPassword('user','pwd');
-
或者通过宝塔面板mongodb配置页面来修改。
- bindIp修改为 0.0.0.0 允许外网访问
- authorization 修改为 enabled 开启认证
重启一下mongodb
重启mongdb可以用命令行(/etc/init.d/mongodb restart)
/etc/init.d/mongodb restart
-
完成