2017-11-03 13 views
0

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 

답변

1

?

+0

예를 다시 시작을 수행합니다. 먼저 yaml 파일을 업데이트 한 다음 dse 서비스를 다시 시작한 다음 역할을 생성합니다. – ikertrump

0

구성 dse.yaml 모두 authentication_options 및 authorization_options의 '엄격한'에 transitional_mode과는 노드