当以非超级用户创建类似以下函数时,我收到以下错误:
ERROR: permission denied for language c
SQL state: 42501
所创建的函数为:
CREATE OR REPLACE FUNCTION dblink_connect (text)
RETURNS text
AS '$libdir/dblink','dblink_connect'
LANGUAGE C STRICT;
如果我想在语言C上授予权限给非超级用户,我会得到以下错误:
postgres=# grant usage on language c to caixa;
ERROR: language "c" is not trusted
这意味着非超级用户无法使用语言C创建函数吗?还是我有其他错误?
caixa
角色USAGE
权限,因为它已经被授予给了PUBLIC
(所有角色)。关键在于pg_language
系统目录中的lanpltrusted
属性。 - Grzegorz Szpetkowski