PostgreSQL: como permitir acesso de leitura a apenas algumas colunas de uma tabela?

Como fornecer acesso de leitura a algumas colunas de uma tabela e impedir o acesso as demais colunas para um certo usuário?

Para exemplificar esse cenário, vou usar a base de dados Chinook e a ferramenta DBeaver para administrar a base de dados.

Prim…

Como fornecer acesso de leitura a algumas colunas de uma tabela e impedir o acesso as demais colunas para um certo usuário?

Para exemplificar esse cenário, vou usar a base de dados Chinook e a ferramenta DBeaver para administrar a base de dados.

Primeiro, crie um usuário:

CREATE USER mariana WITH PASSWORD 'sua_senha';

Depois, crie uma view com apenas as colunas da tabela que você deseja permitir o acesso. Nesse caso, estou criando com as colunas “EmployeeId”, “LastName”, “FirstName”, “Title”, “Email” da tabela “Employee”:

CREATE VIEW employee_base_info AS SELECT "EmployeeId", "LastName", "FirstName", "Title", "Email" FROM "Employee";

A view é como uma tabela virtual, não é uma tabela que está de fato no banco e quando é referenciada essa query é executada.

Depois, dê permissão de leitura na view para o usuário:

GRANT SELECT ON employee_base_info TO mariana;

Então, ao conectar no banco utilizando esse usuário, temos permissão de realizar uma consulta na view:
Print da tela do Dbeaver com a query:  raw `select * from employee_base_info` endraw  e abaixo as informações da tabela

Mas não temos permissão de consultar a tabela inteira:
Print da tela do Dbeaver com a query:  raw `select * from "Employee" e abaixo o erro 'permission denied for table Employee` endraw

Tampouco permissão de update:
Print da tela do Dbeaver com a query:  raw `update "Employee" set "LastName" = 'Silva' where "EmployeeId" = 1` endraw  e abaixo o erro 'permission denied for table Employee`

Com isso garantimos maior segurança para nosso banco de dados.

Obrigada por ler!
Se quiser saber mais, veja também a documentação do PostgreSQL.


Print Share Comment Cite Upload Translate
APA
Mariana Ferreira | Sciencx (2024-03-28T23:10:29+00:00) » PostgreSQL: como permitir acesso de leitura a apenas algumas colunas de uma tabela?. Retrieved from https://www.scien.cx/2021/05/22/postgresql-como-permitir-acesso-de-leitura-a-apenas-algumas-colunas-de-uma-tabela/.
MLA
" » PostgreSQL: como permitir acesso de leitura a apenas algumas colunas de uma tabela?." Mariana Ferreira | Sciencx - Saturday May 22, 2021, https://www.scien.cx/2021/05/22/postgresql-como-permitir-acesso-de-leitura-a-apenas-algumas-colunas-de-uma-tabela/
HARVARD
Mariana Ferreira | Sciencx Saturday May 22, 2021 » PostgreSQL: como permitir acesso de leitura a apenas algumas colunas de uma tabela?., viewed 2024-03-28T23:10:29+00:00,<https://www.scien.cx/2021/05/22/postgresql-como-permitir-acesso-de-leitura-a-apenas-algumas-colunas-de-uma-tabela/>
VANCOUVER
Mariana Ferreira | Sciencx - » PostgreSQL: como permitir acesso de leitura a apenas algumas colunas de uma tabela?. [Internet]. [Accessed 2024-03-28T23:10:29+00:00]. Available from: https://www.scien.cx/2021/05/22/postgresql-como-permitir-acesso-de-leitura-a-apenas-algumas-colunas-de-uma-tabela/
CHICAGO
" » PostgreSQL: como permitir acesso de leitura a apenas algumas colunas de uma tabela?." Mariana Ferreira | Sciencx - Accessed 2024-03-28T23:10:29+00:00. https://www.scien.cx/2021/05/22/postgresql-como-permitir-acesso-de-leitura-a-apenas-algumas-colunas-de-uma-tabela/
IEEE
" » PostgreSQL: como permitir acesso de leitura a apenas algumas colunas de uma tabela?." Mariana Ferreira | Sciencx [Online]. Available: https://www.scien.cx/2021/05/22/postgresql-como-permitir-acesso-de-leitura-a-apenas-algumas-colunas-de-uma-tabela/. [Accessed: 2024-03-28T23:10:29+00:00]
rf:citation
» PostgreSQL: como permitir acesso de leitura a apenas algumas colunas de uma tabela? | Mariana Ferreira | Sciencx | https://www.scien.cx/2021/05/22/postgresql-como-permitir-acesso-de-leitura-a-apenas-algumas-colunas-de-uma-tabela/ | 2024-03-28T23:10:29+00:00
https://github.com/addpipe/simple-recorderjs-demo