错误:权限被拒绝了C语言 [英] ERROR: permission denied for language c

查看:1425
本文介绍了错误:权限被拒绝了C语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在与我收到以下错误非超级用户创建一个函数是这样的:

When create a function something like this with a non-super user i am getting the below error:

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

创建功能是:

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

但是,如果我想给上的langaugeç允许我的非超级用户,我收到以下错误:
的Postgres =上C语言来储蓄银行批#使用;
错误:语言C不被信任

这意味着,非超级用户无法创建用C语言函数?或者是有什么事情我做错了?

That means, non-super user can't create function with language C? or is there any thing i am doing wrong?

推荐答案

这是正确的,根据的 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 没有这样的选项):

If you really want this, then you could modify pg_language system catalog (ALTER LANGUAGE doesn't have such option):

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

这篇关于错误:权限被拒绝了C语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆