createRole - 创建角色
db.createRole(<role>)
Sdb
该函数用于创建自定义角色
role ( object,必填 )
通过role指定创建的角色的角色名、权限和继承角色:
Role ( string,必填 ) 角色名,不可以_
开头
Privileges ( array ) 授予角色的权限数组。一个权限由一个Resource和Actions组成。
Roles ( array) 该角色继承权限的角色数组。可以包含其他的自定义角色或者内建角色。
函数执行成功时,无返回值。
函数执行失败时,将抛异常并输出错误信息。
常见异常如下:
错误码 | 错误类型 | 描述 | 解决方法 |
---|---|---|---|
-6 | SDB_INVALIDARG | 参数错误 | 检查角色定义是否符合模型 |
-408 | SDB_AUTH_ROLE_EXIST | 同名角色已存在 |
当异常抛出时,可以通过 getLastErrMsg() 获取错误信息或通过 getLastError() 获取错误码。更多错误处理可以参考常见错误处理指南。
v5.8 及以上版本
在集群中创建一个名为foo_developer
的角色,其继承了内建角色_foo.readWrite
,并额外为其授予在集群上的snapshot
权限
> db.createRole({ Role: "foo_developer", Privileges:[ {Resource:{Cluster:true}, Actions:["snapshot"]} ], Roles:["_foo.readWrite"] })