Name: | table_privileges |
Owner: | postgres |
Has rules: | |
Has Triggers: | |
Comment: |
Name | Type | Length | |
|
grantor | sql_identifier | -1 |
|
grantee | sql_identifier | -1 |
|
table_catalog | sql_identifier | -1 |
|
table_schema | sql_identifier | -1 |
|
table_name | sql_identifier | -1 |
|
privilege_type | character_data | -1 |
|
is_grantable | character_data | -1 |
|
with_hierarchy | character_data | -1 |
CREATE VIEW table_privileges AS
SELECT (u_grantor.rolname)::sql_identifier AS grantor, (grantee.rolname)::sql_identifier AS grantee, (current_database())::sql_identifier AS table_catalog, (nc.nspname)::sql_identifier AS table_schema, (c.relname)::sql_identifier AS table_name, (pr."type")::character_data AS privilege_type, (CASE WHEN aclcontains(c.relacl, makeaclitem(grantee.oid, u_grantor.oid, pr."type", true)) THEN 'YES'::text ELSE 'NO'::text END)::character_data AS is_grantable, ('NO'::character varying)::character_data AS with_hierarchy FROM pg_class c, pg_namespace nc, pg_authid u_grantor, (SELECT pg_authid.oid, pg_authid.rolname FROM pg_authid UNION ALL SELECT (0)::oid AS oid, 'PUBLIC') grantee(oid, rolname), (((((SELECT 'SELECT' UNION ALL SELECT 'DELETE') UNION ALL SELECT 'INSERT') UNION ALL SELECT 'UPDATE') UNION ALL SELECT 'REFERENCES') UNION ALL SELECT 'TRIGGER') pr("type") WHERE ((((c.relnamespace = nc.oid) AND (c.relkind = ANY (ARRAY['r'::"char", 'v'::"char"]))) AND aclcontains(c.relacl, makeaclitem(grantee.oid, u_grantor.oid, pr."type", false))) AND ((pg_has_role(u_grantor.oid, 'USAGE'::text) OR pg_has_role(grantee.oid, 'USAGE'::text)) OR (grantee.rolname = 'PUBLIC'::name)));
ALTER TABLE information_schema.table_privileges OWNER TO postgres;
See Also
List of views