dovolte mi, abych vám s tím pomohl:
-
1. :protože
pg_catalog
je ve vlastnictví superuživatele postgres , takže se ujistěte, že se přihlašujete k serveru s touto rolí:oprávnění schématu pg_catalog -
2. :ujistěte se, že se připojujete vpravo databázi, která potřebuje UDĚLIT/ODVOLAT oprávnění na. GRANT/REVOKE ovlivní pouze aktuální databáze, ke které jste se připojili. To znamená, že po přihlášení pomocí účtu superuživatele vydejte:\c [the db] pro připojení k této databázi se shell změní na:[the db]=>
-
3. :tabulky v
pg_catalog
výchozí hodnoty přiděleny SELECT tabulkám PUBLIC:v pg_catalog. Takže musíte spustit REVOKE SELECT FROM PUBLIC a poté GRANT SELECT příslušným uživatelům:ODVOLAT VEŘEJNOST VÝBĚR VŠECH TABULEK VE SCHÉMATU pg_catalog;
GRANT SELECT ON TABLE [table] TO [uživatel];
Pro tabulky seznamů v databázi:pg_class a pg_namespace .
A to je vše :)