MongoDB作为一个数据库服务器,真正生产环境中肯定是要对客户端的连接检查权限的。MongoDB的权限系统比较简单,这篇笔记介绍如何为数据库配置用户,以及如何登陆数据库。
MongoDB中,用户权限是对应一个数据库的,可以针对一个用户分配角色,admin
数据库对应的用户是超级管理员。MongoDB服务器默认没有任何管理用户,我们首先需要创建一个超级管理员。
首先切换到admin数据库:
> use admin
switched to db admin
然后执行创建用户语句:
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
注意:由于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()