Internal Authentication of cassandra

一、Internal Authentication

1、配置角色role
新建:
        CREATE ROLE role1 IF NOT EXISTS WITH PASSWORD = 'role1' AND LOGIN = true AND SUPERUSER = true; //默认没有superuser和login的权限
        CREATE ROLE role2 IF NOT EXISTS WITH PASSWORD = 'role2';
修改:
         ALTER ROLE role1 WITH PASSWORD = 'role1' AND LOGIN = false  AND SUPERUSER = true;
删除:
        DROP ROLE IF EXISTS role1;
查看:
       select * from system_auth.roles;

2、配置用户user
新建:
         CREATE USER IF NOT EXISTS  user1  WITH PASSWORD 'user1';//默认具有login的权限
         CREATE USER IF NOT EXISTS  user2  WITH PASSWORD 'user2' SUPERUSER;
修改:
          ALTER USER IF  EXISTS  user1  WITH PASSWORD 'user123';
          ALTER USER IF NOT EXISTS  user2  WITH PASSWORD 'user2  NOSUPERUSER';//去掉超级用户的权限
删除:
         DROP ROLE IF EXISTS user1;
查看:
        select * from system_auth.roles;

二、Internal Authorization

1、用户授权配置
对象权限管理基于内部授权,与关系型数据库GRANT/REVOKE语法类似。
首先要配置cassandra.yaml中authorizer的值为CassandraAuthorizer(默认为AllowAllAuthorizer,允许任何用户的任何动作),设定为该值后会将授权信息存储在system_auth.permissions表中。
之后,配置system_auth这个keyspace的replicationfactor为较大的值。
通过设置permissions_validity_in_ms选项调整权限有效期。

 语法
授权
GRANT  [  ALL  ] 
CREATE  |  ALTER  |  DROP  |  SELECT  |  MODIFY  |  AUTHORIZE  |  DESCRIBE  |  EXECUTE  ON  [  ALL KEYSPACES  |  KEYSPACE   keyspace_name  | 
TABLE   table_name  | 
ALL ROLES   ROLE   role_name  | 
ALL FUNCTIONS  [  IN KEYSPACE   keyspace_name  ] |  FUNCTION   function_name  ]
TO   role_name
禁用
REVOKE [  ALL ] 
CREATE  |  ALTER  |  DROP  |  SELECT  |  MODIFY  |  AUTHORIZE  |  DESCRIBE  |  EXECUTE ON  [  ALL KEYSPACES  |  KEYSPACE   keyspace_name  | 
TABLE   table_name  | 
ALL ROLES   ROLE   role_name  | 
ALL FUNCTIONS  [  IN KEYSPACE   keyspace_name  ] |  FUNCTION   function_name  ]
FROM   role_name
LIST permission_name PERMISSION  | ( LIST ALL PERMISSIONS ) ON resource OF user_name  NORECURSIVE

其中permission_name为
Ø  ALL
Ø  ALTER
Ø  AUTHORIZE
Ø  CREATE
Ø  DROP
Ø  MODIFY
Ø  SELECT
resource为
Ø  ALL KEYSPACES
Ø  KEYSPACE keyspace_name
Ø  TABLE keyspace_name.table_name

授权——例如:
  • grant all permissions on all keyspaces to user1;//将所有的keyspaces中的所有权限都授权给了user1
查看结果如下:

  • grant select on system_auth.role_permissions to user2;//授权system_auth中的role_permissions表的select权限给user2
查看结果如下:

  • grant alter on system_auth.role_permissions to user2;//授权system_auth中的role_permissions表的alter权限给user2
查看结果如下:

  • LIST ALL PERMISSIONS  ON all keyspaces OF user1  NORECURSIVE;
查看结果如下:

  • LIST ALL PERMISSIONS  ON system_auth.role_permissions  OF user2  NORECURSIVE;
查看结果如下:


禁用——例如:
  •  revoke select on system_auth.role_permissions from user2;
查看结果如下:


查询:
  • select * from system_auth.role_permissions ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值