1 개의 노드 cassandra 클러스터가 있습니다. 내가 필요한 것은 사용자를 생성하고 그것에 역할을 추가하는 것입니다. 다음 데이터 저장소 예제를 수행했습니다.DSE 5.1 CASSANDRA 5.11 내부 모드에 대한 역할을 생성하지 못합니다.
CREATE KEYSPACE warehouse WITH REPLICATION = {'class':'SimpleStrategy',
'replication_factor':1};
USE warehouse;
CREATE TABLE addresses (
customer_id bigint,
address_id int,
address text,
PRIMARY KEY (customer_id, address_id)
);
CREATE ROLE supervisor;
GRANT SELECT ON warehouse.addresses TO supervisor;
CREATE ROLE pam WITH PASSWORD = 'password' AND LOGIN = true;
GRANT supervisor TO pam;
그래서 사용자 Pam은 warehouse.addresses에서만 읽을 수 있습니다. 내가 warehouse.addresses에서 keyspace1.table 다른에서 PAM 선택 데이터로 로그인 그러나, 데이터가 제공됩니다 :
cqlsh xxx.x.xx.xx -u pam -p password
[email protected]> select from keyspace1.table 1 where id= 1
팸 그녀가 수퍼 유저 역할을하고, 모든 키 스페이스에서 모든 작업을 수행 할 수 있습니다 나는 왜 그런지 이해하지 못한다. pam의 모든 역할과 권한을 나열하면 모든 것이 올 바르고 수퍼 유저는 false입니다. 내가 dse.yaml 변경된 무엇
은 다음과 같습니다
authentication_options:
enabled: true
default_scheme: internal
allow_digest_with_kerberos: false
plain_text_without_ssl: warn
transitional_mode: disabled
other_schemes:
scheme_permissions: false
role_management_options:
mode: internal
authorization_options:
enabled: true
transitional_mode: normal
allow_row_level_security: true
cassandra.yaml :
당신이 DSE를 다시 시작 않은 YAML 파일을 업데이트 한 후authenticator: com.datastax.bdp.cassandra.auth.DseAuthenticator
authorizer: com.datastax.bdp.cassandra.auth.DseAuthorizer
role_manager: com.datastax.bdp.cassandra.auth.DseRoleManager
예를 다시 시작을 수행합니다. 먼저 yaml 파일을 업데이트 한 다음 dse 서비스를 다시 시작한 다음 역할을 생성합니다. – ikertrump