通过命令创建数据库账户
创建文档数据库实例时,系统会同步创建默认账户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个字符。
- 密码为英文大小写字母、数字、特殊字符~@#%-_!*+=^?的组合。
创建实例数据库以及设置密码时,安全起见,为用户提供了密码复杂度校验,如果不满足要求,请根据提示信息调整密码复杂度。
创建账户
- 选择admin数据库。
use admin
- 以user1账户为例,创建数据库账户。
db.createUser({user: "user1", pwd: "****", passwordDigestor:"server", roles:[{role: "root", db: "admin"}]})
- “server”是指在服务端加密密码,为固定值,无需修改。
- “****”是新密码,长度8~32位,且必须为英文大小写字母、数字以及特殊字符~@#%-_!*+=^?的组合。
- “roles”限制了该账户所具有的权限。若指定一个空数组,表示该账户不具有任何权限。
- 查看创建结果。
显示如下信息,说明创建成功。
Successfully added user: { "user" : "user1", "passwordDigestor" : "server", "roles" : [ { "role" : "root", "db" : "admin" } ] }
更改账户的密码
- 选择admin数据库。
use admin
- 以user1账户为例,修改账户的密码。
db.updateUser("user1", {passwordDigestor:"server",pwd:"newPasswd12#"})
- “server”是指在服务端加密密码,为固定值,无需修改。
- “newPasswd12#”是新密码,长度8~32位,且必须为英文大小写字母、数字以及特殊字符~@#%-_!*+=^?的组合。
- 如果密码用在mongodb url中且密码包含@ / % ? # , 则需要进行URL特殊字符转义,替换为对应的十六进制的URL编码(ASCII码)。
- 查看修改结果。显示如下信息,说明修改成功。
- 集群
mongos>
- 副本集
replica:PRIMARY>
- 单节点
replica:PRIMARY>
- 集群
使用创建的账户连接数据库
数据库账户创建后,可用于连接数据库,操作详情如下: