基于角色的认证

业务集群通过执行以下步骤配置开启基于角色的认证,配置步骤如下:

修改 cassandra.yaml 
文件的授权选项:authenticator =》具体值修改为 PasswordAuthenticator,这个选项强制要求访问集群时需要角色的名字和密码。
重启数据库。

更改system_auth键空间复制因子:


高危默认值:默认情况下,这个角色授权表只会存在一个文件,它没有副本,而且存储着角色和权限.


解决办法:

我通过修改 system_auth 表的 REPLICATION 字段的值增加副本数量。

1:登录 cqlsh。
2:授权系统 keyspace system_auth 存储角色。 

配置命令参考:

ALTER KEYSPACE system_auth
    WITH REPLICATION= {'class' : 'NetworkTopologyStrategy', 
                       'data_center_name' : N, 
                       'data_center_name' : N};

实际配置案例:

我的集群只有 dc1 ,配置DC1 \ 3副本,

ALTER KEYSPACE system_auth
    WITH REPLICATION= {'class' : 'NetworkTopologyStrategy', 
                       'dc1' : 3};

运行nodetool修复。

nodetool repair --full system_auth

参考文档:

https://docs.datastax.com/en/security/5.1/security/secSystemKeyspace.html
https://www.ibm.com/developerworks/cn/opensource/os-cn-apache-cassandra3x5/index.html