Acabei de instalar o PostgresSQL 8.1 do código-fonte e não tenho nenhum problema com a edição de catálogos do sistema como superusuário . É determinado pela propriedade rolcatupdate
no pg_roles
catálogo do sistema:
Role may update system catalogs directly. (Even a superuser may not do this unless this column is true.)
Você pode verificar isso por:
SELECT rolcatupdate FROM pg_roles WHERE rolname LIKE 'postgres';
rolcatupdate
--------------
t
(1 row)
Para outras funções, você tem false
value, então você pode (provavelmente você não deveria fazer isso, então tenha cuidado) definido como true
:
UPDATE pg_roles SET rolcatupdate = true WHERE rolname LIKE 'roleName'
Segunda maneira (digamos que você não tenha nenhum cargo de superusuário após algum acidente) é rodar o servidor PostgreSQL em modo de usuário único :
When running a stand-alone server, the session user will be set to the user with ID 1. This user does not actually have to exist, so a stand-alone server can be used to manually recover from certain kinds of accidental damage to the system catalogs. Implicit superuser powers are granted to the user with ID 1 in stand-alone mode.