Cassandra 之旅 (三) 权限管理之内部权限管理

权限管理

  • 内部权限管理:使用帐号与密码登录
  • 对象权限管理:基于GRANT/REVOKE范例
  • 客户端到节点的访问权限管理:使用SSL

内部权限管理

  • 配置内部权限管理

1. 修改cassandra.yaml中authentication相关的两个配置节点,分别修改为

authenticator: org.apache.cassandra.auth.PasswordAuthenticator 

authorizer:org.apache.cassandra.auth.CassandraAuthorizer

2. 配置dse_auth keyspace的replication: 你需要配置dse_auth keyspace的replication factor来预防一个潜在的登录问题。不要使用默认的replication factor: 1,如果你配置使用了如下权限设置:

authenticator: com.datastax.bdp.cassandra.auth.KerberosAuthenticator

authenticator: com.datastax.bdp.cassandra.auth.PasswordAuthenticator

authorizer: com.datastax.bdp.cassandra.auth.CassandraAuthorizer

在一个多节点的集群中,使用默认值1会阻止用户登录当存储用户数据的节点DOWN了的话。所以与dse_auth相关的Query,cassandra都是使用QUORUM的一致性级别的。

修改步骤如下:

1. 打开cassandra.yaml

2. 修改auth_replication_options 节点,如:

Example for SimpleStrategy:

		auth_replication_options:
   replication_factor: 3

Example for NetworkTopologyStrategy:

		auth_replication_options:
   DC1: 3
   DC2: 3
3. 如果修改已经存在的集群要注意以下几点:确保每个节点中的配置文件都有修改,重启所有节点,在每个节点上运行nodetool repair

NOTE:
Cassandra: dse_auth.users

PasswordAuthenticator: hashed passwords 存于 dse_auth.credentials

CassandraAuthorizer: 权限存于dse_auth.permissions

  • 				使用Authentication
    

当你完成以上的权限相关配置后就不能使用空的用户名与密码使用CQLSH或者CASSSANDRA-CLI了。可以先使用超级用户来登录 :<客户端启动命令> -u cassandra -p cassandra.

这里要注意的是,你需要用HELP命令查看一下确实的命令使用方式,官方文档虽然说是-u -p, 但实际上我使用下来是-u -pw, -p是-port。因为cassandra版本在不段的更新中,每次更新你都应该去看一下安装目录里的NEWS,看一下有哪些变动。

-u cassandra -pw cassandra 是默认的超级管理员。

  • 更改超级用户的密码

1. 创建一个新的超级用户,用户名不能再是cassandra

2. 登录这个超级用户

3. 更新cassandra用户的密码,并不要再使用这个帐户了

4. 取消掉cassandra用户超级管理员的角色

  • 权限相关命令: 配置好之后,就可以使用相关命令来使用权限管理
  1. ALTER USER
  2. CREATE USER
  3. DROP USER
  4. LIST USERS
原文地址:https://www.cnblogs.com/modestmt/p/3051608.html