【问题标题】:create cassandra db user/role using python使用 python 创建 cassandra db 用户/角色
【发布时间】:2019-06-08 22:06:48
【问题描述】:

我正在尝试在cassandra using python driver 中创建用户。 定义变量密码

password=abcde
rows = session.execute("create user test_user with 'password') 

CQL 查询中的语法错误] message="需要 K_PASSWORD 的行密码

password=abcde
rows = session.execute("create user test_user with 'password') 

【问题讨论】:

    标签: python cassandra cql cassandra-3.0


    【解决方案1】:

    您的语法中缺少PASSWORD 保留字。此外,CREATE USER 仅用于 3.x 之前的 Cassandra 版本。如果您使用的是之后的版本,则为 CREATE ROLE

    低于 3.x 的版本

    CREATE USER test_user WITH PASSWORD 'abcde';
    

    3.x+

    CREATE ROLE test_user WITH PASSWORD='abcde';
    

    请注意,较新的版本要求密码和PASSWORD 用等号 ('=') 分隔。

    所以在你的 Python 脚本中,它看起来像这样:

    rows = session.execute("create role test_user with password='" + password1 + "' and login=true")
    

    【讨论】:

    • 您运行的是哪个版本的 Cassandra? @cad
    • 卡桑德拉 3.11.1
    • @cad 好的,那么根据我的示例,请确保使用等号和“角色”一词而不是“用户”。还可以尝试将密码文本放在引号中。
    • 具有您上面提到的语法的角色有效,但由于未提及 login=true 而无法登录。并尝试 login=true 它错误了无效的 synatx。 CREATE ROLE test_user with password='" + password1 + "'" AND LOGIN = true
    • @cad 已编辑。抱歉,我认为密码是最难的部分,其余的你可以弄清楚。您必须将 ` 和 login=true` 视为子字符串并连接到原始字符串。
    猜你喜欢
    • 2016-02-26
    • 2022-01-06
    • 1970-01-01
    • 2022-08-21
    • 2020-04-03
    • 2019-05-05
    • 1970-01-01
    • 2017-12-24
    • 2014-04-08
    相关资源
    最近更新 更多