Cassandra无法删除角色或用户列表中的角色或用户

时间:2015-09-21 04:59:08

标签: cassandra cql3 cqlsh

create ROLE testROLE with PASSWORD = 'test';
create ROLE testROLE with PASSWORD = 'test';

list ROLES成功显示了这些角色。

DROP ROLE testROLE;
InvalidRequest: code=2200 [Invalid query] message="testrole doesn't exist"
DROP ROLE test1;
InvalidRequest: code=2200 [Invalid query] message="test1 doesn't exist"

CQLSH输出图片。

enter image description here

该角色显示在列表中但无法删除。 怎么会发生这种情况?

2 个答案:

答案 0 :(得分:1)

如果没有引用,角色名称不会保留大小写,您可以从列表角色输出中看到。如果您的角色名称区分大小写,则需要将它们用双引号括起来(就像键空间或表名一样)。

您编辑了粘贴的输出吗?我问,因为你不应该如图所示两次运行相同的CREATE ROLE语句。如果是这样,还有其他什么消失吗?我怀疑你能够成功地放弃一次角色,但不是第二次(这是预期的行为和我所看到的)。

答案 1 :(得分:1)

this:从Cassandra 2迁移到Cassandra 3时,迁移完所有节点后,应删除旧表system_auth.userssystem_auth.credentialssystem_auth.permissions

如果没有完成,Cassandra会将新角色写入新表,但尝试从旧表中读取角色,这会给出问题中描述的行为。