Comando de autorização do banco de dados PostgreSQL

  Costumo utilizar bancos de dados e raramente tenho operações autorizadas, mas recentemente houve uma cena em que preciso definir quais bancos de dados, tabelas e sequências só podem ser operados por um determinado usuário. Deixe-me compartilhar minha experiência, eu uso o banco de dados PostgreSQL.

Sintaxe do Comando de Empoderamento

Os comandos de concessão no PostgreSQL são GRANT e REVOKE.

O comando GRANT é usado para conceder certas permissões (como SELECT, INSERT, UPDATE, DELETE, etc.) a um determinado usuário ou grupo de usuários em um objeto (como tabelas, visualizações, funções, etc.).

gramática:

GRANT privilege [, ...] ON object TO {user | group | PUBLIC} [, ...] [WITH GRANT OPTION];

Entre eles, privilégio é um tipo de permissão, objeto é um objeto, que pode ser uma tabela, visualização, função, etc., usuário ou grupo é o usuário ou grupo de usuários a quem será concedida permissão e PÚBLICO significa todos os usuários.

Por exemplo, o usuário autorizado zhangsan executa operações SELECT e INSERT no teste da tabela:

GRANT SELECT, INSERT ON test TO zhangsan;

O comando REVOKE é usado para revogar certas permissões de um usuário ou grupo de usuários em um objeto.

gramática:

REVOKE privilege [, ...] ON object FROM {user | group | PUBLIC} [, ...] [CASCADE | RESTRICT];

Entre eles, os significados de privilégio, objeto, usuário ou grupo e PUBLIC são os mesmos do comando GRANT.

Por exemplo, cancele a permissão SELECT do usuário zhangsan no teste da tabela:

REVOKE SELECT ON test FROM zhangsan;

Deve-se observar que apenas os superusuários têm autoridade para conceder e revogar permissões. 

combate

ver todos os usuários

SELECIONE * DE pg_user;

Crie um usuário e defina uma senha

CRIAR USUÁRIO zhangsan COM SENHA '123456';

excluir usuários 

DROP USUÁRIO zhangsan;

criar banco de dados

Teste CRIAR BANCO DE DADOS;

excluir banco de dados

Teste DROP DATABASE IF EXISTS;

Remova os privilégios do usuário no banco de dados "teste" 

REVOGAR TODOS os privilégios NO "teste" DO BANCO DE DADOS DE zhangsan;

Dê permissão ao usuário para operar o banco de dados de "teste" 

CONCEDER CONECTAR, CRIAR, TEMPORÁRIO NO "teste" DO BANCO DE DADOS PARA zhangsan;

Dê permissão ao usuário para operar tabelas no banco de dados "teste" 

GRANT SELECT, INSERT, UPDATE, DELETE
EM TODAS AS TABELAS DO SCHEMA PUBLIC
TO zhangsan;

Concede ao usuário o privilégio de operar em sequências no banco de dados "teste"

Definições de permissão para sequências

Pode-se observar no documento oficial que todas as permissões da sequência são rwU, correspondendo a SELECT, UPDATE, USAGE respectivamente;

Para sequências, o privilégio SELECT permite o uso da função currval

Para sequências, o privilégio UPDATE permite o uso das funções nextval e setval

Para sequências, o privilégio USAGE permite o uso das funções currval e nextval

Se você precisar de permissão para modificar a sequência, poderá conceder ALL diretamente, da seguinte maneira 

CONCEDER SELEÇÃO, ATUALIZAÇÃO, USO EM TODAS AS SEQUÊNCIAS DO ESQUEMA PÚBLICO PARA zhangsan;

Se você apenas usar a sequência e não precisar modificá-la, poderá capacitar USAGE

CONCESSAR USO EM TODAS AS SEQUÊNCIAS DO ESQUEMA PÚBLICO PARA zhangsan; 

Acho que você gosta

Origin blog.csdn.net/Eighteen_y/article/details/130742810
Recomendado
Clasificación