transwarp Slipstream 简介之权限管理

Slipstream权限管理

简介
Slipstream采用基于SQL的权限管理:
• 管理员可以管理角色(ROLE);
• 用户或角色可以被授予或收回对不同数据对象的权限。
Slipstream的管理员角色的获取、角色管理以及对 DATABASE, VIEW 和 TABLE 这三个数据对象的权限 管理和Inceptor SQL一致。您可以直接查看《Transwarp Inceptor 使用手册》。本节将介绍Slipstream中特 有的对象——Application, Stream和Streamjob——上的权限以及授权语法。
Slipstream对象的权限按级别总结如下:

全局权限:
• CREATE APP:创建application。 • Database级别:
• CREATE (STREAM):创建stream。
Application级别:
• LIST:列出正在运行的streamjob(执行 LIST STREMAJOBS)。
• SELECT:列出所有streamjob(执行 SHOW STREAMJOBS)。 
• START:开始streamjob。
• STOP:停止streamjob。
Stream级别:
• INSERT:向stream INSERT。
• SELECT:从stream中 SELECT。
• 没有Streamjob级别的权限。

权限管理的语法可以概括如下:
–授予权限

GRANT
<priv_type> [, <priv_type> ] ...
[ON <object_specification>]
TO <principal_specification> [, <principal_specification>] ... [WITH GRANT OPTION]  1
;

–收回权限

REVOKE [GRANT OPTION FOR]  2
      <priv_type> [, <priv_type> ] ...
      [ON <object_specification>]
      FROM <principal_specification> [, <principal_specification>] ... ;

–查看权限

SHOW GRANT
      [<principal_specification>]
      [ON (ALL| (<object_specification>)];
  priv_type
    : CREATE APP | LIST | START | STOP | INSERT | SELECT
  object_specification
    : APPLICATION|APP <app_name>
    | DATABASE <database_name>
    | <stream_name>
  principal_specification
    : USER <user>
    | ROLE <role>

1 如果在授权时加上 WITH GRANT OPTION 选项,那么被授权的用户和角色也可以将该权限授予别的 用户或角色。
2 如果加上 GRANT OPTION FOR 选项,那么只收回用户或角色给别的用户或角色授权的权力,但是并 不收回权限本身。
注意,管理员用户要进行权限及角色管理前,需要将当前的 角色 切换为 ADMIN: SET ROLE ADMIN;

启动一个streamjob需要的权限 Streamjob(无论是否持久化)由 INSERT INTO SELECT FROM 触发。所以要启动streamjob需要三个权限:


1. 目标table上的 INSERT 权限;
2. 源stream上的 SELECT 权限;
3. 启动streamjob所在的application上的 START 权限。

授予权限

  • 授予全局权限

语法:授予 CREATE APP 权限

GRANT CREATE APP TO <principal_specification>;

例 6. 向用户授予 CREATE APP 权限

SET ROLE ADMIN; --将当前角色切换为ADMIN
    GRANT CREATE APP TO USER alice
  • 授予database级别权限
    语法:授予数据库级别 CREATE
 GRANT CREATE ON DATABASE <database_name> TO <principal_specification>;

例 7. 授予用户alice数据库级别 CREATE

GRANT CREATE ON DATABASE db TO USER alice;
//授权后,用户alice既可以在db中建stream也可以建table。
  • 授予Application级别权限
    语法:授予Application级别权限
  GRANT CREATE | SELECT | LIST | START | STOP | ALL ON [APPLICATION|APP] <app_name> TO
  <principal_specification>;

例 8. 授予用户alice在application test_app上的权限

    GRANT LIST, SELECT, START, STOP ON APP test_app TO USER alice;
  • 授予Stream级别权限

语法:授予Stream级别权限

GRANT SELECT | INSERT ON <stream_name> TO <principal_specification>;
--注意,这里 stream_name 前不能有 STREAM 关键字。

收回权限

  • 收回全局权限

    语法:收回全局 CREATE APP 权限

REVOKE CREATE APP FROM <principal_specification>;

例 9. 从用户alice处收回 CREATE APP 权限

REVOKE CREATE APP FROM USER alice;
  • 收回Database级别权限
    语法:收回Database级别 CREATE
REVOKE CREATE ON DATABASE <database_name> FROM <principal_specification>;

例 10. 收回用户alice的Database级别 CREATE 权限

REVOKE CREATE ON DATABASE db FROM USER alice;
--这样用户alice将不能在db中创建stream,也不能在db中创建table。
  • 收回Application级别权限
    语法:收回Application级别权限
 REVOKE SELECT | LIST | START | STOP | ALL ON [APPLICATION|APP] <app_name> FROM
  <principal_specification>;

例 11. 收回用户alice在application test_app上的权限

     REVOKE LIST, SELECT, START, STOP ON APP test_app FROM USER alice;
  • 收回Stream级别权限
    语法:收回Stream级别权限
 REVOKE SELECT | INSERT ON <stream_name> FROM <principal_specification>;
注意,这里 stream_name 前不能有 STREAM 关键字。

查看权限

语法:查看权限

SHOW GRANT
<principal_specification>
[ON (<object_specification>)]; 1
  object_specification
    : APPLICATION|APP <app_name>
    | DATABASE <database_name>
    | <stream_name>

1 查看指定对象上的权限,不指定则查看对用户或角色的所有全局、Database级别和Table级别权限。要查 看Application和Stream级别权限必须指定Application和Stream。
例 12. 查看alice用户的Application级别权限
查看alice用户对test_app的权限

  SHOW GRANT USER alice ON APP test_app;

例 13. 查看alice用户的stream级别权限
查看alice用户对demo_stream的权限

 SHOW GRANT USER ALICE ON demo_stream;

Slipstream操作所需权限总结

下面我们总结在Slipstream中进行对stream, streamjob和application进行操作的 必要 权限。 表格中,
• “Y”表示“需要有此权限”
• “YD”表示“需要对操作所在Database有此权限”
• “YA”表示“需要对操作所在Application有此权限”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值