DCL(Data Control Language)主要包含用户角色管理语法和权限管理语法。

用户角色管理

Lindorm CQL语法使用database roles 来表示用户角色。role的定义如下:

role_name ::=  identifier | string

Lindorm CQL与Apache Cassandra CQL对database role 的操作大体相似。默认情况下,用户不具有登录权限或超级用户权限。

权限管理

Lindorm CQL语法支持对语言结构中的各层级授予权限,权限支持向下兼容,即,对上层结构中的资源授予权限会自动赋予该结构之下的所有资源相同的权限。例如:当对1个keyspace授予SELECT权限后,该权限将自动授予keyspace中的所有table。

说明 权限进行更改后,客户端不需要重新建立连接。

Lindorm CQL支持的权限有:CREATEALTERDROPSELECTMODIFY

各权限对资源类型的支持情况如下表:
说明 各权限对支持的资源类型有区分。若对无法应用权限的资源授予权限,将导致错误。
权限类型 资源支持情况 可操作的语句
CREATE ALL KEYSPACES 在任意keyspace执行CREATE KEYSPACESCREATE TABLE
CREATE KEYSPACE 在某个特定keyspace执行CREATE TABLE
ALTER ALL KEYSPACES 在任意keyspace执行ALTER KEYSPACESALTER TABLE
ALTER KEYSPACE 在某个特定keyspace执行ALTER TABLE
DROP ALL KEYSPACES 在任意keyspace执行DROP KEYSPACESDROP TABLE
DROP KEYSPACE 在某个特定keyspace执行DROP TABLE
SELECT ALL KEYSPACES 在任意keyspace执行SELECT KEYSPACESSELECT TABLE
SELECT KEYSPACE 在某个特定keyspace执行SELECT TABLE
SELECT TABLE 在特定表下执行SELECT操作。
MODIFY ALL KEYSPACES 在任意keyspace执行MODIFY KEYSPACESMODIFY TABLE
MODIFY KEYSPACE 在某个特定keyspace执行MODIFY TABLE
MODIFY TABLE 在特定表下执行MODIFY操作。