35.15. column_privileges #

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

grantor sql_identifier

Nome da função de banco de dados que concedeu o privilégio

grantee sql_identifier

Nome da função de banco de dados para a qual o privilégio foi concedido

table_catalog sql_identifier

Nome do banco de dados que contém a tabela que contém a coluna (sempre o banco de dados corrente)

table_schema sql_identifier

Nome do esquema que contém a tabela que contém a coluna

table_name sql_identifier

Nome da tabela que contém a coluna

column_name sql_identifier

Nome da coluna

privilege_type character_data

Tipo do privilégio: SELECT, INSERT, UPDATE ou REFERENCES

is_grantable yes_or_no

YES se o privilégio puder ser concedido, NO caso contrário


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             |