Cassandra 2.2.2 无法创建登录用户/角色

标签 cassandra roles cql cql3 cqlsh

我最近将 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/

相关文章:

javascript - 无法使用 'roles' 包向 meteor 用户添加角色

reporting-services - 向 Reporting Services 添加新角色类型

java - Cassandra:如何将PreparedStatement绑定(bind)到 map 数据

io - 如何增加 cassandra 磁盘 I/O

cassandra - DataStax DevCenter 架构窗口始终为空

cassandra - 在 Cassandra 列中存储 JSON 字符串的有效方法?

asp.net - 如何在 ASP.NET MVC 中获取 RoleID

sql - 使用 Cassandra 的 datastax Java 驱动程序中的别名可链接便捷方法选择特定列以及 avg 和 max

java - Cassandra 绑定(bind)语句和内存泄漏

Cassandra Cql 范围选择