Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 22, 2021 07:55 pm GMT

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 usurio?

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

Primeiro, crie um usurio:

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, no uma tabela que est de fato no banco e quando referenciada essa query executada.

Depois, d permisso de leitura na view para o usurio:

GRANT SELECT ON employee_base_info TO mariana;

Ento, ao conectar no banco utilizando esse usurio, temos permisso de realizar uma consulta na view:
Print da tela do Dbeaver com a query:  raw `select * from employee_base_info` endraw  e abaixo as informaes da tabela

Mas no temos permisso 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 permisso 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 segurana para nosso banco de dados.

Obrigada por ler!
Se quiser saber mais, veja tambm a documentao do PostgreSQL.


Original Link: https://dev.to/mari_dff/postgresql-como-permitir-acesso-de-leitura-a-apenas-algumas-colunas-de-uma-tabela-2918

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To