数据库用户和权限
MongoDB作为一个数据库服务器,真正生产环境中肯定是要对客户端的连接检查权限的。MongoDB的权限系统比较简单,这篇笔记介绍如何为数据库配置用户,以及如何登陆数据库。
超级管理员
MongoDB中,用户权限是对应一个数据库的,可以针对一个用户分配角色,admin数据库对应的用户是超级管理员。MongoDB服务器默认没有任何管理用户,我们首先需要创建一个超级管理员。
首先切换到admin数据库:
> use admin
switched to db admin
然后执行创建用户语句:
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
- role指定的是数据库角色
注意:由于MongoDB版本迭代比较快,权限系统也是MongoDB着重改进的地方,上述写法可能放到未来版本的MongoDB中就不好使了。
开启权限认证并登陆
现在我们用刚刚创建的root用户登录MongoDB数据库服务器。
启动数据库服务:
mongod --auth
--auth:启用权限认证
使用用户名和密码认证权限:
> use admin
switched to db admin
> db.auth("root","root")
1
为一个数据库创建操作用户
现在我们有了超级管理员,接着创建普通用户。
切换到tutorial数据库:
> use tutorial
switched to db tutorial
执行以下代码创建用户tutorial,并分配读写权限:
db.createUser(
{
user: "tutorial",
pwd: "admin123",
roles: [ { role: "readWrite", db: "tutorial" } ]
}
)
这样我们就可以使用tutorial用户登录了。
查看所有用户
切换到管理员账号和admin数据库:
db.system.users.find()
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。