A visão column_privileges identifica todos os privilégios concedidos em colunas para a função de banco de dados (role) ativa no momento, ou pela função de banco de dados ativa no momento. Há uma linha para cada combinação de coluna, concessor e beneficiado.
Se o privilégio tiver sido concedido a uma tabela inteira, ele
aparecerá nesta visão como uma concessão para cada coluna, mas apenas
para os tipos de privilégio onde a granularidade de coluna é possível:
SELECT, INSERT,
UPDATE, REFERENCES.
Tabela 35.13. Colunas de column_privileges
Coluna Tipo de dados Descrição |
|---|
Nome da função de banco de dados que concedeu o privilégio |
Nome da função de banco de dados para a qual o privilégio foi concedido |
Nome do banco de dados que contém a tabela que contém a coluna (sempre o banco de dados corrente) |
Nome do esquema que contém a tabela que contém a coluna |
Nome da tabela que contém a coluna |
Nome da coluna |
Tipo do privilégio: |
|
Exemplo 35.12. Exemplo do tradutor
Privilégios concedidos pela usuária cristina a outros
Uso do esquema de informações para mostrar os privilégios concedidos pela usuária cristina para as funções de banco de dados (roles) que não sejam ela própria.
SELECT * FROM information_schema.column_privileges WHERE grantor = 'cristina' AND grantee != 'cristina'\gx
-[ RECORD 1 ]--+------------ grantor | cristina grantee | PUBLIC table_catalog | cristina table_schema | tutorial table_name | clima column_name | cidade privilege_type | SELECT is_grantable | NO -[ RECORD 2 ]--+------------ grantor | cristina grantee | PUBLIC table_catalog | cristina table_schema | tutorial table_name | clima column_name | data privilege_type | SELECT is_grantable | NO -[ RECORD 3 ]--+------------ grantor | cristina grantee | PUBLIC table_catalog | cristina table_schema | tutorial table_name | cidades column_name | localizacao privilege_type | SELECT is_grantable | NO -[ RECORD 4 ]--+------------ grantor | cristina grantee | PUBLIC table_catalog | cristina table_schema | tutorial table_name | cidades column_name | nome privilege_type | SELECT is_grantable | NO -[ RECORD 5 ]--+------------ grantor | cristina grantee | PUBLIC table_catalog | cristina table_schema | tutorial table_name | clima column_name | prcp privilege_type | SELECT is_grantable | NO -[ RECORD 6 ]--+------------ grantor | cristina grantee | PUBLIC table_catalog | cristina table_schema | tutorial table_name | clima column_name | temp_max privilege_type | SELECT is_grantable | NO -[ RECORD 7 ]--+------------ grantor | cristina grantee | PUBLIC table_catalog | cristina table_schema | tutorial table_name | clima column_name | temp_min privilege_type | SELECT is_grantable | NO
Também pode ser usado o meta-comando \dp[Sx] do psql para listar os privilégios de acesso das tabelas, visões e sequências, desde que seja fornecido o caminho de procura de esquema adequado.
SET search_path TO tutorial, "$user", public;
SET
\dpx clima
Privilégios de acesso
-[ RECORD 1 ]---------+---------------------------
Esquema | tutorial
Nome | clima
Tipo | tabela
Privilégios de acesso | cristina=arwdDxtm/cristina+
| =r/cristina
Privilégios de coluna |
Políticas |