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.