在 SequoiaDB 中,权限是指用户对数据库资源的操作权限,由资源和允许的操作组成。资源是指数据库中的对象,分为集合空间、集合和集群。操作是指对资源的操作。
权限是指用户对数据库资源的操作权限,由资源和允许的操作组成。
资源是指数据库中的对象,分为集合空间、集合和集群。如果资源是集群,则附属操作会影响系统的状态,而不是特定的集合空间或集合。
权限的定义格式如下:
{ "Resource" : <resource>, "Actions" : [<action>, <action>, ...] }
资源指定了权限允许操作的资源。
集合空间和集合资源的定义格式如下:
{ "cs" : <collection space name>, "cl" : <collection name> }
如果资源对象同时指定了cs
与cl
,该资源是指定集合空间中的指定集合。例如,下列对象定义了一个代表集合空间foo
中集合bar
的资源:
{ "cs" : "foo", "cl" : "bar" }
如果只有cl
留空,该资源是指定集合空间中的所有集合。例如,下列对象定义了一个代表集合空间foo
中所有集合的资源:
{ "cs" : "foo", cl: "" }
如果只有cs
留空,该资源是集群中所有集合空间的同名集合。例如,下列对象定义了一个代表集群中所有集合空间中bar
同名的集合的资源:
{ "cs" : "", "cl" : "bar" }
如果cs
和cl
都留空,该资源是集群中所有非系统集合的资源。例如,下列对象定义了一个代表集群中所有非系统集合的资源:
{ "cs" : "", "cl" : "" }
集群资源的定义格式如下:
{ "Cluster" : true }
使用集群资源执行影响系统状态的操作,而不是对特定集合空间或集合的执行操作,例如,此类操作的示例包括更新节点配置、管理用户和角色、节点部署和启停等。例如,下列对象授予集群上的更新节点配置操作权限。
{ Resource: { Cluster:true }, Actions: ["updateConfig"] }
任何资源提供对集群中每个资源的访问,仅供内部使用,除特殊情况外,请勿使用此资源。任何资源的定义格式如下:
{ "AnyResource" : true }
操作定义了用户可以对资源执行的操作。操作仅定义在匹配的资源上才有效,所有操作类型及命令所需权限映射参考操作类型。SequoiaDB 提供了预定义权限的内建角色,还可定义用户自定义角色。