This content originally appeared on DEV Community and was authored by Mariana Ferreira
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:
Mas não temos permissão de consultar a tabela inteira:
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.
This content originally appeared on DEV Community and was authored by Mariana Ferreira

Mariana Ferreira | Sciencx (2021-05-22T19:55:02+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/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.