数据库用户和权限

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进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap