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输出图片。
该角色显示在列表中但无法删除。 怎么会发生这种情况?
答案 0 :(得分:1)
如果没有引用,角色名称不会保留大小写,您可以从列表角色输出中看到。如果您的角色名称区分大小写,则需要将它们用双引号括起来(就像键空间或表名一样)。
您编辑了粘贴的输出吗?我问,因为你不应该如图所示两次运行相同的CREATE ROLE语句。如果是这样,还有其他什么消失吗?我怀疑你能够成功地放弃一次角色,但不是第二次(这是预期的行为和我所看到的)。
答案 1 :(得分:1)
从this:从Cassandra 2迁移到Cassandra 3时,迁移完所有节点后,应删除旧表system_auth.users
,system_auth.credentials
和system_auth.permissions
。
如果没有完成,Cassandra会将新角色写入新表,但尝试从旧表中读取角色,这会给出问题中描述的行为。