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