gpt4 book ai didi

c - 错误 : permission denied for language c

转载 作者:太空狗 更新时间:2023-10-29 16:23:42 26 4
gpt4 key购买 nike

当使用非 super 用户创建这样的函数时,出现以下错误:

错误:语言 c 的权限被拒绝
SQL 状态:42501

创建的函数是:

CREATE OR REPLACE FUNCTION dblink_connect (text)
RETURNS text
AS '$libdir/dblink','dblink_connect'
LANGUAGE C STRICT;

但是,如果我想将 C 语言的权限授予我的非 super 用户,则会出现以下错误:postgres=# 将 c 语言的使用授权给 caixa;
错误:语言“c”不受信任

也就是说,非 super 用户不能用C语言创建函数?还是我做错了什么?

最佳答案

没错,根据doc :

Only superusers can create functions in untrusted languages

快速检查:

SELECT lanpltrusted FROM pg_language WHERE lanname LIKE 'c';
lanpltrusted
--------------
f
(1 row)

如果您真的想要这个,那么您可以修改pg_language 系统目录(ALTER LANGUAGE 没有这样的选项):

UPDATE pg_language SET lanpltrusted = true WHERE lanname LIKE 'c';

下面的每个用户@Otheus:UPDATE 语句必须在函数所在的数据库中完成。

关于c - 错误 : permission denied for language c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7014437/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com