文档首页/ 文档数据库服务 DDS/ 用户指南/ 数据库使用/ 通过命令创建数据库账户
更新时间:2024-01-30 GMT+08:00

通过命令创建数据库账户

创建文档数据库实例时,系统会同步创建默认账户rwuser。您可以根据业务需要,通过默认账户rwuser创建其他数据库账户,之后您可以使用默认账户rwuser或已创建的其他账户对数据库中的数据如库、表、索引等进行操作。

使用须知

  • 为目标实例创建数据库账户时,建议您开启SSL通道,提高数据的安全性。
  • 对于已有的3.2版本的文档数据库实例,不支持创建数据库账户,仅可更改管理员账户rwuser的密码。
  • 在创建数据库账户时,要指定命令参数passwordDigestor:"server",具体操作请参见官方文档

前提条件

成功连接文档数据库实例,请参见《文档数据库服务快速入门》各实例类型下,通过内网和公网连接实例的内容。

账户说明

  • 为了给文档数据库实例提供管理服务,您在创建数据库实例时,文档数据库服务会自动为实例创建根账户root(或admin)、监控账户monitor和备份账户backup,这些账户属于华为云实例管理平台,您不能操作或者使用。如果试图删掉、重命名、修改这些账户的密码和权限,会导致出错。
  • 对于数据库管理员账户rwuser,以及您所创建的账户,允许修改账户的密码。
  • 默认账户rwuser以及通过rwuser创建的账户,对系统库admin和config权限受限,无法进行正常操作。对自身创建的库表,具有充分的操作权限。
  • MongoDB的User一般是在某个固定的认证库下创建的。连接数据库时,需要通过参数--authenticationDatabase来明确指定对应的认证库。
  • DDS实例中,默认的rwuser用户的认证库,是admin。
  • 账户密码连续5次输入错误,账户会被锁定10s。

账户密码等级设置

  • 文档数据库服务在控制台侧管理员密码的安全策略:
    • 密码长度为8~32个字符。
    • 密码必须为英文大小写字母、数字、特殊字符~!@#%^*-_=+?()$的组合。
  • 文档数据库对在客户端新创的数据库用户,设置了密码安全策略:
    • 密码长度为8~32个字符。
    • 密码为英文大小写字母、数字、特殊字符~@#%-_!*+=^?的组合。

创建实例数据库以及设置密码时,安全起见,为用户提供了密码复杂度校验,如果不满足要求,请根据提示信息调整密码复杂度。

创建账户

  1. 选择admin数据库。

    use admin

  2. 以user1账户为例,创建数据库账户。

    db.createUser({user: "user1", pwd: "****", passwordDigestor:"server", roles:[{role: "root", db: "admin"}]})

    • server”是指在服务端加密密码,为固定值,无需修改。
    • ****”是新密码,长度8~32位,且必须为英文大小写字母、数字以及特殊字符~@#%-_!*+=^?的组合。
    • “roles”限制了该账户所具有的权限。若指定一个空数组,表示该账户不具有任何权限。

  3. 查看创建结果。

    显示如下信息,说明创建成功。

    Successfully added user: {
            "user" : "user1",
            "passwordDigestor" : "server",
            "roles" : [
                    {
                            "role" : "root",
                            "db" : "admin"
                    }
            ]
    }

更改账户的密码

  1. 选择admin数据库。

    use admin

  2. 以user1账户为例,修改账户的密码。

    db.updateUser("user1", {passwordDigestor:"server",pwd:"newPasswd12#"})

    • server”是指在服务端加密密码,为固定值,无需修改。
    • newPasswd12#”是新密码,长度8~32位,且必须为英文大小写字母、数字以及特殊字符~@#%-_!*+=^?的组合。
    • 如果密码用在mongodb url中且密码包含@ / % ? # , 则需要进行URL特殊字符转义,替换为对应的十六进制的URL编码(ASCII码)。

  3. 查看修改结果。显示如下信息,说明修改成功。

    • 集群
      mongos>
    • 副本集
      replica:PRIMARY>
    • 单节点
      replica:PRIMARY>