jinji
发布于 2025-02-07 / 99 阅读
0
0

doris赋权用户

在 Apache Doris 中,权限管理机制与 MySQL 存在差异。您在执行以下语句时:

GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;

遇到错误:

ERROR 1105 (HY000): ParseException, msg: 
mismatched input 'GRANT' expecting {'(', 'ALTER', 'CALL', 'CANCEL', 'CREATE', 'DELETE', 'DESC', 'DESCRIBE', 'DROP', 'EXPLAIN', 'EXPORT', 'INSERT', 'LOAD', 'PAUSE', 'REFRESH', 'REPLACE', 'RESUME', 'SELECT', 'SHOW', 'UPDATE', 'VALUES', 'WITH'}(line 1, pos 0)

这是因为 Doris 的 GRANT 语法不同于 MySQL。根据 Doris 的官方文档,权限管理系统参考了 MySQL 的机制,但并不完全相同。 citeturn0search0

正确的操作步骤如下:

  1. 创建用户:

    CREATE USER 'test' IDENTIFIED BY 'your_password';
    

    请将 'your_password' 替换为您为用户设置的密码。

  2. 授予权限:

    在 Doris 中,权限授予的语法为:

    GRANT privilege_list ON db_name TO 'user_name';
    

    其中,privilege_list 可以是以下之一:

    • READ_ONLY:只读权限
    • READ_WRITE:读写权限
    • ALL:全部权限

    例如,授予用户 test 对数据库 test_db 的全部权限:

    GRANT ALL ON test_db TO 'test';
    

    注意: Doris 不支持 ON *.* 这样的全局权限授予,您需要对每个数据库单独授予权限。 citeturn0search8

  3. 允许远程访问:

    默认情况下,Doris 的用户只能从本地访问。要允许用户从远程主机连接,您需要在 Doris 的前端配置文件 fe.conf 中设置 priority_networks 参数。例如,允许所有 IP 访问:

    priority_networks = 0.0.0.0/0
    

    设置完成后,重启 Doris 前端服务使配置生效。

总结:

  • 创建用户: 使用 CREATE USER 语句。
  • 授予权限: 使用 GRANT 语句,指定具体的数据库和权限类型。
  • 允许远程访问: 配置 fe.conf 中的 priority_networks 参数。

通过以上步骤,您可以在 Apache Doris 中创建用户并授予其远程访问权限。


评论