A visão column_privileges identifica todos os privilégios concedidos em colunas para o usuário corrente, ou pelo usuário corrente. Existe uma linha para cada combinação de coluna, quem concedeu e a quem foi concedido. Os privilégios concedidos aos grupos são identificados na visão role_column_grants.
No PostgreSQL só é possível conceder privilégios para toda a tabela, e não para colunas individuais. Portanto, esta visão contém as mesmas informações da visão table_privileges, apenas representadas por uma linha para cada coluna da respectiva tabela, mas somente abrangendo os tipos de privilégio onde a granularidade de coluna é possível: SELECT, INSERT, UPDATE e REFERENCES. Se for desejado tornar os aplicativos adequados para possíveis desenvolvimentos futuros, geralmente é correto escolher esta visão em vez de table_privileges, quando há interesse em um destes tipos de privilégio. [1] [2] [3]
Tabela 30-5. Colunas de column_privileges
Nome | Tipo de dado | Descrição |
---|---|---|
grantor | sql_identifier | Nome do usuário que concedeu o privilégio |
grantee | sql_identifier | Nome do usuário ou do grupo para o qual o privilégio foi concedido |
table_catalog | sql_identifier | Nome do banco de dados contendo a tabela que contém a coluna (sempre o banco de dados corrente) |
table_schema | sql_identifier | Nome do esquema contendo 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 | character_data | YES se o privilégio pode ser concedido, NO caso contrário |
Deve ser observado que a coluna grantee não faz distinção entre usuários e grupos. Havendo usuários e grupos com o mesmo nome, infelizmente não há maneira de distingui-los. Possivelmente será proibido existir usuários e grupos com o mesmo nome em uma versão futura do PostgreSQL.
[1] |
COLUMN_PRIVILEGES — visão — Identifica os privilégios nas colunas das tabelas, definidos neste catálogo, que estão disponíveis ou foram concedidos por um determinado usuário ou grupo. (ISO-ANSI Working Draft) Information and Definition Schemas (SQL/Schemata), ISO/IEC 9075-11:2003 (E) (N. do T.) |
[2] |
O rowset COLUMN_PRIVILEGES identifica os privilégios em colunas de tabelas definidos no catálogo disponíveis para, ou concedidos por, um determinado usuário. Microsoft OLE DB Programmer's Reference (N. do T.) |
[3] |
A visão COLUMN_PRIVILEGES contém uma linha para cada coluna com privilégio concedido por, ou para, o usuário corrente no banco de dados corrente. A visão INFORMATION_SCHEMA.COLUMN_PRIVILEGES é baseada nas tabelas do sistema sysprotects, sysobjects e syscolumns. SQL Server Books Online (N. do T.) |