我最近将 cassandra 开发集群更新到 v2.2.2,其中包括 RoleManager 支持。我最近注意到,通过 CQL 创建新用户时:
CREATE ROLE abc WITH PASSWORD = 'abcde' AND LOGIN = true;
或
CREATE USER abc WITH PASSWORD 'abcde';
无论哪种情况,执行上述命令后用户都无法登录。检查 system_auth 键空间,我可以看到角色表中写入了“行”,但凭证或用户中没有写入。
如果我手动将适当的行插入到凭据和用户中,那么只有这样我的用户才能登录。
另请注意,在手动将行插入到凭据和用户中之前,我无法删除用户“abc”。
这是怎么回事 - 我是否误用了 CREATE USER/CREATE ROLE?在我看来,CREATE 操作应该进行必要的设置。或者升级迁移是否以某种微妙的方式失败了?
最佳答案
如果升级迁移过程成功完成,那么您应该在日志中看到以下条目:
Completed conversion of legacy users
Completed conversion of legacy credentials
如果是这种情况,那么您需要手动删除旧表:
DROP TABLE system_auth.users;
DROP TABLE system_auth.credentials;
这个来自这个blog 。 Cassandra 将继续使用旧表,直到它们被删除。
关于Cassandra 2.2.2 无法创建登录用户/角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33892411/