Pular para o conteúdo principal
Cria novas roles. Uma role é um conjunto de privilégios. Um usuário ao qual uma role é atribuída recebe todos os privilégios dessa role. Sintaxe:
CREATE ROLE [IF NOT EXISTS | OR REPLACE] name1 [, name2 [,...]] [ON CLUSTER cluster_name]
    [IN access_storage_type]
    [SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [CONST|READONLY|WRITABLE|CHANGEABLE_IN_READONLY] | PROFILE 'profile_name'] [,...]

Gerenciamento de roles

Um usuário pode ter várias roles atribuídas. Os usuários podem aplicar suas roles atribuídas em combinações arbitrárias por meio da instrução SET ROLE. O escopo final dos privilégios é a combinação de todos os privilégios de todas as roles aplicadas. Se um usuário tiver privilégios concedidos diretamente à sua conta de usuário, eles também serão combinados com os privilégios concedidos pelas roles. Um usuário pode ter roles padrão, que são aplicadas no login. Para definir roles padrão, use a instrução SET DEFAULT ROLE ou a instrução ALTER USER. Para revogar uma role, use a instrução REVOKE. Para excluir uma role, use a instrução DROP ROLE. A role excluída é automaticamente revogada de todos os usuários e roles aos quais foi atribuída.

Exemplos

CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant;
Esta sequência de consultas cria a role accountant, que tem o privilégio de ler dados do banco de dados db. Atribuindo a role ao usuário mira:
GRANT accountant TO mira;
Depois que a role é atribuída, o usuário pode ativá-la e executar as consultas permitidas. Por exemplo:
SET ROLE accountant;
SELECT * FROM db.*;
Última modificação em 10 de junho de 2026