我有一个 Cassandra 集群(Datastax 开源),目前没有配置身份验证(即,它使用 AllowAllAuthenticator),我想使用 PasswordAuthenticator。官方文件说我应该遵循以下步骤:
在 cassandra.yaml 中启用 PasswordAuthenticator,
重新启动 Cassandra 节点,这将创建 system_auth 密钥空间,
更改 system_auth 复制因子,
创建新用户和密码
然而,这对我来说是个大问题,因为集群是在生产中使用的,所以我们不能有任何停机时间。在第 2 步和第 4 步之间还没有配置用户,所以即使客户端提供了用户名和密码,请求仍然会被拒绝,这并不理想。
我查看了Datastax Enterprise 文档,它有一个 TransitionalAuthenticator 类,它会创建 system_auth 密钥空间但不会拒绝请求。请问这个类能不能移植到开源版本?或者如果有其他方法可以解决这个问题?谢谢
更新 这是我正在使用的 Cassandra 版本:
cqlsh 4.1.1 | Cassandra 2.0.9 | CQL spec 3.1.1 | Thrift protocol 19.39.0