【问题标题】:Cassandra can not delete role or user which in the role or user listCassandra 无法删除角色或用户列表中的角色或用户
【发布时间】:2015-12-17 16:59:10
【问题描述】:
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 输出的图像。

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

【问题讨论】:

  • 如果你运行DROP ROLE IF EXISTS testrole;,输出是什么?
  • 碰巧,你用的是Windows吗?
  • @Aaron Linux 3.13.0-61-generic #100-Ubuntu SMP 2015 年 7 月 29 日星期三 11:21:34 UTC x86_64 x86_64 x86_64 GNU/Linux
  • @Nathan 什么都没有显示,在我执行那个之后,角色列表仍然保持不变。很奇怪。

标签: cassandra cql3 cqlsh


【解决方案1】:

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

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

【讨论】:

  • 我也试过testrole和testROLE。它们显示相同的错误信息。
  • 这正是我的问题的解决方案! :)
【解决方案2】:

来自this:从Cassandra 2 迁移到Cassandra 3 时,一旦所有节点都已迁移,应删除旧表system_auth.userssystem_auth.credentialssystem_auth.permissions

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

【讨论】:

    猜你喜欢
    • 2021-03-28
    • 2022-10-17
    • 1970-01-01
    • 2021-09-06
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    相关资源
    最近更新 更多