SELECT proacl FROM pg_proc WHERE proname = 'pg_sleep'; \dT+ money \z pg_catalog.pg_database \z information_schema.domains \dL+ sql \dn+ public \l+ template1 \db+ pg_default REVOKE EXECUTE ON FUNCTION pg_sleep(float8) FROM PUBLIC; REVOKE USAGE ON TYPE money FROM PUBLIC; REVOKE SELECT ON pg_database FROM PUBLIC; GRANT SELECT (oid) ON pg_database TO PUBLIC; REVOKE SELECT ON information_schema.domains FROM PUBLIC; GRANT SELECT (domain_name) ON information_schema.domains TO PUBLIC; REVOKE USAGE ON LANGUAGE sql FROM PUBLIC; -- TODO pg_largeobject_metadata.lomacl REVOKE USAGE ON SCHEMA public FROM PUBLIC; REVOKE CONNECT ON DATABASE template1 FROM PUBLIC; GRANT CREATE ON TABLESPACE pg_default TO PUBLIC; -- SKIP pltemplate: deprecated; no DDL for it -- TODO pg_foreign_data_wrapper.fdwacl -- TODO pg_foreign_server.srvacl SELECT proacl FROM pg_proc WHERE proname = 'pg_sleep'; \dT+ money \z pg_catalog.pg_database \z information_schema.domains \dL+ sql \dn+ public \l+ template1 \db+ pg_default /* RESULT: $ pg_dumpall | grep -E '(GRANT|REVOKE)' GRANT ALL ON DATABASE template1 TO nm; REVOKE ALL ON SCHEMA public FROM PUBLIC; GRANT CREATE ON SCHEMA public TO PUBLIC; REVOKE ALL ON TYPE money FROM PUBLIC; REVOKE SELECT ON TABLE pg_database FROM PUBLIC; GRANT SELECT(oid) ON TABLE pg_database TO PUBLIC; */