SUPERUSER 不会传播到其他区域

SUPERUSER doesn't propagate to other region

我使用 Cassandra 3.9。

我在 AWS 上有两个数据中心。

每个数据中心包含 3 个节点作为我的数据库服务器。

当我通过执行 CREATE USER 'hello' WITH PASSWORD 'world' SUPERUSER 在一个节点中创建超级用户时,我收到以下错误。

NoHostAvailable:

然而,有趣的是,当我执行 LIST USERS 时,用户 hello 被列为超级用户,我可以使用该用户和密码登录 cqlsh。

我可以在同一个数据中心的其他两个节点上登录cqlsh,但是我无法在另一个数据中心的任何节点上登录cqlsh。这对我来说很奇怪,因为一切都应该通过这两个数据中心传播。我想强调的是,每个数据用户输入都毫无问题地传播到这些数据中心。那么为什么超级用户不传播呢?

当我尝试在其他数据中心登录 cqlsh 时,收到以下错误。

Connection error: ('Unable to connect to any servers', {'172.51.11.232': AuthenticationFailed('Failed to authenticate to 172.51.11.232: Error from server: code=0100 [Bad credentials] message="org.apache.cassandra.exceptions.UnavailableException: Cannot achieve consistency level LOCAL_ONE"',)})

我没有特别改变这些数据中心之间的任何东西。

我确保在每个 cassandra.yaml 文件中将 authenticator 设置为 PasswordAuthenticator 并将 authorizer 设置为 CassandraAuthorizer 并通过这两个在每个节点中重新启动 cassandra数据中心。

感谢任何建议。

更新: 下面是执行DESCRIBE KEYSPACE system_auth.

的结果
CREATE KEYSPACE system_auth WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

系统密钥空间的复制策略(保留用户数据等)是错误的:

CREATE KEYSPACE system_auth WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

应该更改它以匹配您的 "regular" 键空间的复制策略,至少对于数据中心部分,每个数据中心可能具有更高的复制因子。