Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL CREATE ROLE

O PostgreSQL é um sistema de gerenciamento de banco de dados relacional avançado e de código aberto que oferece suporte a consultas complexas e operações de dados em grande escala. Ele é amplamente usado para gerenciar dados em servidores da Web e de aplicativos, devido à sua confiabilidade e escalabilidade.

Uso

O PostgreSQL permite que você crie funções, que são entidades que podem possuir objetos de banco de dados e ter privilégios de banco de dados. As funções podem ser usadas para fins de autenticação, gerenciamento de permissões e definição dos níveis de acesso do usuário. No PostgreSQL, uma função pode funcionar como um usuário ou como um grupo de usuários.


CREATE ROLE role_name
[WITH option [option ...]];

Nessa sintaxe, role_name é o nome da função que você deseja criar e option especifica os atributos e privilégios atribuídos a essa função, como LOGIN, SUPERUSER, CREATEDB, ou CREATEROLE. Observe que a opção PASSWORD requer o privilégio LOGIN para ser efetiva.

Exemplos

1. Criação de função básica


CREATE ROLE readonly_user;

Este exemplo cria uma função básica chamada readonly_user sem privilégios adicionais. Ele não pode fazer login ou executar nenhuma ação até que outros atributos sejam atribuídos.

2. Função com privilégio de login


CREATE ROLE editor_user WITH LOGIN PASSWORD 'securepassword';

Aqui, uma função chamada editor_user é criada com capacidade de login e uma senha especificada, permitindo que você se autentique e se conecte ao banco de dados.

3. Função com vários privilégios


CREATE ROLE admin_user WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'adminpassword';

Neste exemplo, admin_user recebe vários privilégios, incluindo SUPERUSER (controle total sobre o banco de dados), CREATEDB (capacidade de criar bancos de dados) e CREATEROLE (capacidade de criar, alterar e eliminar outras funções).

Dicas e práticas recomendadas

  • Conceda apenas os privilégios necessários. Evite atribuir mais privilégios do que o necessário para minimizar os riscos de segurança.
  • Use nomes de funções descritivos. Funções claramente nomeadas ajudam a identificar sua finalidade e os privilégios associados.
  • Revisar regularmente os privilégios de função. Atualize periodicamente as funções para garantir o alinhamento com as políticas operacionais e de segurança atuais.
  • Senhas seguras. Sempre use senhas fortes e complexas, especialmente para funções com recursos de login.
  • Considere a herança de funções. Use a herança de funções para gerenciar estruturas de permissão complexas, concedendo funções a outras funções.

Informações adicionais

  • Para modificar uma função existente, use o comando ALTER ROLE. Por exemplo:
    
        ALTER ROLE role_name WITH NEW_OPTION;
        
  • Para remover uma função, use o comando DROP ROLE:
    
        DROP ROLE role_name;
        
  • As funções podem ser concedidas a outras funções, permitindo a herança de funções, o que pode simplificar o gerenciamento de permissões em sistemas maiores.

As funções também podem ser associadas a esquemas e usadas em ambientes de banco de dados multilocatário. Isso permite a separação e o gerenciamento eficazes do controle de acesso em bancos de dados compartilhados.