在 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 的机制,但并不完全相同。 citeturn0search0
正确的操作步骤如下:
创建用户:
CREATE USER 'test' IDENTIFIED BY 'your_password';请将
'your_password'替换为您为用户设置的密码。授予权限:
在 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 *.*这样的全局权限授予,您需要对每个数据库单独授予权限。 citeturn0search8允许远程访问:
默认情况下,Doris 的用户只能从本地访问。要允许用户从远程主机连接,您需要在 Doris 的前端配置文件
fe.conf中设置priority_networks参数。例如,允许所有 IP 访问:priority_networks = 0.0.0.0/0设置完成后,重启 Doris 前端服务使配置生效。
总结:
- 创建用户: 使用
CREATE USER语句。 - 授予权限: 使用
GRANT语句,指定具体的数据库和权限类型。 - 允许远程访问: 配置
fe.conf中的priority_networks参数。
通过以上步骤,您可以在 Apache Doris 中创建用户并授予其远程访问权限。