添加新节点后丢失cassandra身份验证用户

oxcyiej7  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(460)

什么时候ı 向我的cassandra集群添加一个新节点,ı 丢失了我的身份验证用户。
更新种子并重新启动节点它将变成默认用户-u cassandra-p cassandra
ı 失去了我的用户ı 以前已经创建过

yrwegjxp

yrwegjxp1#

我以前见过这种情况。发生的情况是,新节点强制重新计算令牌范围。如果您的新节点也是种子节点,这会使问题复杂化,因为种子节点不引导数据,必须通过修复/重建来填充。从本质上讲,您之前存在的用户可能仍然存在,但是节点主要负责其在 system_auth.roles 表已更改,但未发生数据移动。
首先,仔细检查服务器上使用的复制策略 system_auth 键空间。默认情况下,它设置为 {'class':'SimpleStrategy','replication_factor':'1'} 这是不够的(海事组织)任何其他地方以外的发展。我总是建议把这个改成 NetworkTopologyStrategy ,然后指定数据中心的复制。
完成后,在每个节点上运行修复: nodetool repair system_auth -full 这会让你的前一个用户回来。
注意:不必进行完全修复,您可以通过查询 system_auth 一致性 ALL (强制读取修复):

dba@cqlsh> use system_auth;
dba@cqlsh:system_auth> consistency ALL;
Consistency level set to ALL.
dba@cqlsh:system_auth> SELECT COUNT(*) FROM roles;
dba@cqlsh:system_auth> SELECT COUNT(*) FROM role_permissions;
dba@cqlsh:system_auth> SELECT COUNT(*) FROM role_members;
dba@cqlsh:system_auth> SELECT COUNT(*) FROM resource_role_permissons_index;

无论是完全修复还是读取修复完成,您的前一个用户都应该重新工作。

相关问题