一、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
授权——例如:
查看结果如下:
查看结果如下:
查看结果如下:
查看结果如下:
查看结果如下:
禁用——例如:
查看结果如下:
查询:
|