超级用户不会传播到其他区域



我使用cassandra 3.9。

我有两个数据中心。

每个数据中心包含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"',)})

我没有在这些数据中心之间特别更改任何内容。

我确保将authenticator设置为PasswordAuthenticator,将authorizer设置为每个Cassandra.yaml文件中的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;

应该更改它以匹配您"常规"密钥的复制策略,至少对于数据中心部分,每个数据中心的复制因子可能更高。

最新更新