首页 文章

在正常运行时启用Cassandra PasswordAuthenticator

提问于
浏览
0

我有一个Cassandra集群(Datastax开源),目前没有配置身份验证(即,它使用AllowAllAuthenticator),我想使用PasswordAuthenticator . official document说我应该遵循以下步骤:

  • 在cassandra.yaml中启用PasswordAuthenticator,

  • 重启Cassandra节点,该节点将创建system_auth键空间,

  • 更改system_auth复制因子,

  • 创建新用户和密码

但是,这对我来说是个大问题,因为集群在 生产环境 中使用,所以我们不能有任何停机时间 . 在步骤2和4之间尚未配置任何用户,因此即使客户端提供用户名和密码,该请求仍将被拒绝,这是不理想的 .

我查看了Datastax Enterprise doc,它有一个TransitionalAuthenticator类,它将创建system_auth键空间但不拒绝请求 . 我想知道这个类是否可以移植到开源版本?或者,如果有其他方法解决这个问题?谢谢

Update 这是我正在使用的Cassandra版本:

cqlsh 4.1.1 | Cassandra 2.0.9 | CQL spec 3.1.1 | Thrift protocol 19.39.0

1 回答

  • 1

    假设适当的客户端配置,复制和群集容量,您应该能够仅使用一个节点执行步骤2-4并且没有停机时间 . 然后,它只是其余节点的滚动重启 .

    客户端应该提前使用凭据设置,并且他们将开始将它们用作节点,因为具有授权器的节点联机(此行为可能取决于驱动程序 - 首先尝试它) .

    您可以在使用CassandraAuthenticator之前手动生成步骤3-4的架构和数据,但这不是必需的 .

    您对停机时间有何顾虑?

相关问题