本文共 1257 字,大约阅读时间需要 4 分钟。
MySQL的登录验证方式为:用户名+密码+IP+端口号
MongoDB的登录验证方式为:用户名+密码+IP+端口号+验证库
验证库,建立用户时use到的库,在使用用户登录时,要加上验证库才能登录。对于管理员用户,必须在admin下创建
1 建用户时,use到的库,就是次用户的验证库(也就是use进哪个库后创建的账号,就是该用户的验证库) 2 登录时必须明确指定验证库才能登录 3 登录时,管理员用的验证库是admin库,普通用户的验证库一般是所管理的库设置为验证库 4 如果直接登录到数据库,不进行use,默认的验证库是test,不是生产建议的
案例:
1 创建超级管理员用,管理所有数据库(必须use到admin库)
use admin
db.createUser({ user: "root", pwd: "root123", roles: [ { role: "root", db: "admin" } ] })
基本语法说明
user:用户名 pwd:密码 roles: role:角色名 db:作用对象role(角色)有三种:root,readWrite,read
在mongodb中进行认证
db.auth('root','root123')
开启用户验证功能
修改配置文件
cat >> /mongodb/conf/mongo.conf <
mongod -f /mongodb/conf/mongo.conf --shutdown
mongod -f /mongodb/conf/mongo.conf
重启后登录
mongo -uroot -proot123 192.168.2.100/admin (/admin就是验证库)
这个时候用 mongo也是可以登录的,但是进去不能做任何操作
2 创建对app数据库,读、写权限的app01用户
use app
db.createUser({ user: "app01", pwd: "123456", roles: [ { role:"readWrite", db: "app" } ]})
db.auth('app01','123123')
登录验证
mongo -uapp01 -p123123 192.168.2.100/app
这里可以看到不加/app验证库是远程登录不了的
删除用户
db.dropUser('app01')
注:删除用户要进入到该用户的验证库才能删除成功
3 创建app数据库读写权限的用户app03用户,并对test数据库具有读权限
use app
db.createUser({ user: "app03", pwd: "123456", roles: [ { role:"readWrite", db: "app" }, { role: "read", db: "test" } ]})
查看所有用户及权限(用户信息保存在admin库中的system.users表)
db.system.users.find()
转载地址:http://fqepb.baihongyu.com/