如何在PostgreSQL 8.1中编辑系统目录?

我通过添加了一些解决scheme

allow_system_table_mods = on

到PostgreSQLconfiguration文件。

但是在PostgreSQL上这个没有用。 我找不到任何其他方法让我访问编辑这个目录。

有人有任何想法?

我只是从源代码安装PostgresSQL 8.1,并没有超级用户编辑系统目录的问题。 它由pg_roles系统目录中的rolcatupdate属性确定:

angular色可能会直接更新系统目录。 (即使超级用户可能不会这样做,除非这个列是真实的。)

您可以通过以下方式查看:

 SELECT rolcatupdate FROM pg_roles WHERE rolname LIKE 'postgres'; rolcatupdate -------------- t (1 row) 

对于其他angular色你有false价值,所以你可以(可能你不应该这样做,所以要小心)设置为true

 UPDATE pg_roles SET rolcatupdate = true WHERE rolname LIKE 'roleName' 

第二种方式(假设在事故发生后你没有任何超级用户)是以单用户模式运行PostgreSQL服务器:

在运行独立服务器时,会话用户将被设置为ID为1的用户。该用户实际上并不存在,因此可以使用独立服务器手动恢复某些意外损坏系统目录。 隐式超级用户权限授予ID为1的用户处于独立模式。