如何将postgres'tablefunc安装为非poweruser

时间:2011-09-13 18:29:36

标签: c templates function postgresql privileges

作为我们的php数据测试框架的一部分,我们首先删除&为运行测试的用户创建一个测试数据库(让我们称他为'foo')。

我们的template1没有公共架构。这是因为我们需要测试数据库拥有'foo'所拥有的'public'(默认情况下,即使'foo'创建数据库,Postgres也会使'postgres'拥有'public',而不是'foo')< / p>

现在,我们需要在此测试数据库上安装tablefunc。 Tablefunc包含无法作为非超级用户安装的C函数(例如我们的用户'foo')

可以,这怎么可以实现?无论如何,我们的php数据测试必须以非超级用户身份运行。

1 个答案:

答案 0 :(得分:1)

您可以暂时将c语言视为trusted language,并将tablefunc安装为非超级用户:

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

有关详细信息,请参阅我的previous answer