在正常运行时启用Cassandra PasswordAuthenticator

时间:2014-10-21 16:00:02

标签: cassandra cassandra-2.0 datastax-enterprise datastax cassandra-cli

我有一个Cassandra集群(Datastax开源),目前没有配置身份验证(即,它正在使用AllowAllAuthenticator),我想使用PasswordAuthenticator。 official document表示我应该按照以下步骤操作:

  1. 在cassandra.yaml中启用PasswordAuthenticator,

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

  3. 更改system_auth复制因子

  4. 创建新用户和密码

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

您对停机时间有何顾虑?