CREATE USER nome_do_usuário [ [ WITH ] opção [ ... ] ] onde opção pode ser: SYSID uid | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'senha' | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUP nome_do_grupo [, ...] | VALID UNTIL 'data_hora'
O nome do usuário.
A cláusula SYSID pode ser utilizada para especificar o identificador do usuário sendo criado no PostgreSQL. Não é, de forma alguma, necessário que este identificador corresponda ao identificador do usuário no UNIX, mas algumas pessoas optam por manter o mesmo número.
Se não for especificado, será utilizado por padrão o maior valor atribuído a um identificador de usuário acrescido de 1 (com mínimo de 100).
Define a senha do usuário. Se não se planeja utilizar autenticação por senha pode-se omitir esta opção, mas o usuário não será capaz de se conectar a um servidor autenticado por senha. A senha pode ser definida ou alterada posteriormente através do comando ALTER USER.
Estas palavras chave controlam se a senha é armazenada criptografada, ou não, na tabela pg_shadow (Se nenhuma das duas for especificada, o comportamento padrão é determinado pelo parâmetro PASSWORD_ENCRYPTION do servidor). Se a cadeia de caracteres apresentada já estiver criptografada no formato MD5, então esta cadeia de caracteres é armazenada como está, independentemente de ENCRYPTED ou UNENCRYPTED ser especificado. Esta funcionalidade permite a restauração das senhas criptografadas efetuadas por uma operação de "dump/restore".
Consulte o capítulo sobre autenticação de cliente no Guia do Administrador para obter mais detalhes sobre como configurar os mecanismos de autenticação. Observe que os clientes antigos podem não possuir suporte ao mecanismo de autenticação para o MD5, que é necessário para trabalhar com as senhas armazenadas criptografadas.
Estas cláusulas definem a permissão para o usuário criar bancos de dados. Se CREATEDB for especificado, o usuário sendo definido terá permissão para criar seus próprios bancos de dados. Se NOCREATEDB for especificado, nega-se ao usuário a permissão para criar bancos de dados. Se esta cláusula for omitida, NOCREATEDB será utilizado por padrão.
Estas cláusulas determinam se é permitido ou não o usuário criar novos usuários. Esta opção também torna o usuário um superusuário, que pode modificar todas as restrições de acesso. Se esta cláusula for omitida, o valor deste atributo para o usuário será NOCREATEUSER.
O nome do grupo onde o usuário será incluído como um novo membro. Nomes de vários grupos podem estar presentes.
A cláusula VALID UNTIL define uma data e hora após a qual a senha do usuário não é mais válida. Se esta cláusula for omitida, a conta será válida para sempre.
O comando CREATE USER inclui um novo usuário em uma instância do PostgreSQL. Consulte o Guia do Administrador para obter mais informações sobre o gerenciamento de usuários e autenticação. Apenas os superusuários do banco de dados podem usar este comando.
Use o ALTER USER para mudar a senha e os privilégios do usuário, e o DROP USER para excluir o usuário. Use o ALTER GROUP para adicionar ou remover o usuário de outros grupos. O PostgreSQL possui o script createuser com a mesma funcionalidade deste comando (na verdade, chama este comando), mas que pode ser executado a partir da linha de comandos.
Criar um usuário sem senha:
CREATE USER jonas;
Criar um usuário com senha:
CREATE USER manuel WITH PASSWORD 'jw8s0F4';
Criar um usuário com senha, cuja conta seja válida até o fim de 2001. Observe que no primeiro instante de 2002 esta conta não será mais válida:
CREATE USER miriam WITH PASSWORD 'jw8s0F4' VALID UNTIL 'Jan 1 2002';
Criar uma conta onde o usuário pode criar bancos de dados:
CREATE USER manuel WITH PASSWORD 'jw8s0F4' CREATEDB;