我正在尝试向用户授予函数的权限

postgres=# grant all privileges on function myfunction to a_user;

但我得到:
ERROR:  syntax error at or near "to"
LINE 1: grant all privileges on function myfunction to a_user;

有什么原因吗?
我的功能是这样开始的:
CREATE OR REPLACE FUNCTION myfunction(
param_val1 varchar(255),
param_cal2 VARCHAR(255),
param_val3 VARCHAR(255),
param_val4 current_category,
param_val5 current_type,
param_val6  VARCHAR(255),
param_val7 bigint,
param_val8 text )

最佳答案

您需要包含函数签名,而不仅仅是名称。在这种情况下,如果myfunction的参数为零,则如下所示:

grant all privileges on function myfunction() to a_user;

编辑
鉴于函数确实接受参数,签名如下:
myfunction(character varying, character varying, character varying, <rest of parameters>)

关于postgresql - PostgreSQL:语法错误在或接近TO,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25002655/

10-16 15:05