ALTER ROLE

Nome

ALTER ROLE -- altera um papel do banco de dados

Sinopse

ALTER ROLE nome [ [ WITH ] opção [ ... ] ]

onde opção pode ser:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | CREATEUSER | NOCREATEUSER
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | CONNECTION LIMIT limite_de_conexões
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'senha'
    | VALID UNTIL 'carimbo_do_tempo'

ALTER ROLE nome RENAME TO novo_nome

ALTER ROLE nome SET parâmetro_de_configuração { TO | = } { valor | DEFAULT }
ALTER ROLE nome RESET parâmetro_de_configuração

Descrição

O comando ALTER ROLE altera os atributos de um papel do PostgreSQL.

A primeira variante deste comando listada na sinopse permite alterar muitos dos atributos do papel que podem ser especificados em CREATE ROLE, e que deve ser consultado para obter mais informações (São cobertos todos os atributos possíveis, exceto pelo fato de não haver opções para adicionar ou remover membros; para isto deve ser utilizado GRANT e REVOKE). Os atributos não mencionados no comando permanecem com suas definições anteriores. Os superusuários do banco de dados podem alterar qualquer uma destas definições para qualquer papel. Os papéis que possuem o privilégio CREATEROLE podem alterar qualquer uma destas definições, mas somente para os papéis que não são superusuário. Nesta variante os papéis comuns somente podem alterar sua própria senha.

A segunda variante muda o nome do papel. Os superusuários do banco de dados podem mudar o nome de qualquer papel. Os papéis que possuem o privilégio CREATEROLE podem mudar o nome de papéis que não são superusuário. Não pode ser mudado o nome do usuário da sessão corrente (Caso seja necessário, é preciso se conectar como um usuário diferente). Como as senhas criptografadas com MD5 utilizam o nome do papel como sal criptográfico (cryptographic salt) [1] , mudar o nome do papel limpa a sua senha caso esta esteja criptografada com MD5.

A terceira e quarta variantes alteram o valor padrão para a sessão, da variável de configuração do papel especificada. Depois disso, sempre que o papel iniciar uma nova sessão o valor especificado se tornará o valor padrão para a sessão, substituindo qualquer definição presente no arquivo postgresql.conf, ou recebida através da linha de comando do postgres (Para um papel que não possua o privilégio de LOGIN, os valores padrão para a sessão não possuem nenhum efeito). Os papéis comuns podem alterar seus próprios valores padrão para a sessão. Os superusuários podem alterar os valores padrão para a sessão de qualquer um. Os papéis que possuem o privilégio CREATEROLE podem alterar o valor padrão para papéis que não são superusuário. Certas variáveis não podem ser definidas desta maneira, ou somente podem ser definidas quando o comando é utilizado por um superusuário.

Parâmetros

nome

O nome do papel cujos atributos estão sendo alterados.

SUPERUSER
NOSUPERUSER
CREATEDB
NOCREATEDB
CREATEROLE
NOCREATEROLE
CREATEUSER
NOCREATEUSER
INHERIT
NOINHERIT
LOGIN
NOLOGIN
CONNECTION LIMIT limite_de_conexões
PASSWORD senha
ENCRYPTED
UNENCRYPTED
VALID UNTIL 'carimbo_do_tempo'

Estas cláusulas alteram os atributos originalmente definidos por CREATE ROLE, que deve ser consultado para obter mais informações.

novo_nome

O novo nome do papel.

parâmetro_de_configuração
valor

Define o valor padrão para a sessão do parâmetro de configuração do papel especificado, como sendo o valor fornecido. Se valor for igual a DEFAULT ou, de forma equivalente, se for utilizado RESET, a definição da variável específica para o papel é removida e, portanto, o papel passará a herdar a definição padrão para todo o sistema nas novas sessões. Deve ser utilizado RESET ALL para limpar todas as definições específicas do papel.

Para obter mais informações sobre os nomes e valores de parâmetros permitidos deve ser consultado SET e o Capítulo 17.

Observações

Deve ser utilizado CREATE ROLE para adicionar novos papéis, e DROP ROLE para remover papéis.

O comando ALTER ROLE não pode mudar o status de membro do papel, para isto devem ser utilizados os comandos GRANT e REVOKE.

Deve ser tomado cuidado ao se especificar uma senha não criptografada neste comando. A senha será transmitida para o servidor como texto limpo, também podendo ficar registrada no histórico de comandos do cliente ou no registro do servidor. O psql contém o comando \password que pode ser utilizado para alterar a senha do papel com segurança.

Também é possível associar valor padrão para a sessão para um determinado banco de dados, em vez de para um papel; consulte ALTER DATABASE. As definições específicas do papel substituem as definições específicas do banco de dados, quando há conflito.

Exemplos

Mudar a senha do papel:

ALTER ROLE joana WITH PASSWORD 'hu8jmn3';

Alterar a data de expiração da senha, especificando que a senha deverá expirar ao meio dia de 4 de maio de 2015, utilizando a zona horária uma hora à frente do UTC:

ALTER ROLE cris VALID UNTIL 'May 4 12:00:00 2015 +1';

Tornar a senha válida para sempre:

ALTER ROLE fred VALID UNTIL 'infinity';

Dar ao papel a habilidade de criar outros papéis e novos bancos de dados:

ALTER ROLE miriam CREATEROLE CREATEDB;

Dar ao papel uma definição diferente do padrão para o parâmetro maintenance_work_mem:

ALTER ROLE abelha_operaria SET maintenance_work_mem = 100000;

Compatibilidade

O comando ALTER ROLE é uma extensão do PostgreSQL.

Consulte também

CREATE ROLE, DROP ROLE, SET

Notas

[1]

Em criptografia, sal consiste de bits aleatórios usados como uma das entradas para a função de derivação da chave. Salt (cryptography). (N. do T.)

SourceForge.net Logo CSS válido!