CREATE USER nome [ [ WITH ] opção [ ... ] ] onde opção pode ser: SYSID id_do_usuário | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUP nome_do_grupo [, ...] | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'senha' | VALID UNTIL 'data_e_hora'
O comando CREATE USER adiciona um novo usuário ao agrupamento de bancos de dados do PostgreSQL. Consulte o Capítulo 17 e o Capítulo 19 para obter informações adicionais sobre o gerenciamento de usuários e autenticação. Apenas os superusuários do banco de dados podem usar este comando.
O nome do usuário.
A cláusula SYSID pode ser utilizada para escolher o identificador de usuário do PostgreSQL do novo usuário. Normalmente não é necessário, mas pode ser útil se for necessário recriar o dono de um objeto que ficou órfão.
Se não for especificado, será utilizado por padrão o maior identificador de usuário atribuído acrescido de um (com mínimo de 100).
Estas cláusulas definem a permissão para o usuário criar banco de dados. Se for especificado CREATEDB, o usuário sendo definido terá permissão para criar seus próprios bancos de dados. Se for especificado NOCREATEDB, nega-se ao usuário a permissão para criar banco de dados. Se nenhuma destas cláusulas for especificada, o padrão é NOCREATEDB.
Estas cláusulas determinam se o usuário pode ou não criar novos usuários. CREATEUSER também torna o usuário um superusuário, o qual pode passar por cima de todas as restrições de acesso. Se nenhuma destas cláusulas for especificada, o padrão é NOCREATEUSER.
O nome de um grupo existente onde o usuário será incluído como um novo membro. Podem ser especificados nomes de vários grupos.
Define a senha do usuário. Se não se pretende utilizar autenticação por senha esta opção pode ser omitida, mas o usuário não poderá mais se conectar se for decidido mudar para autenticação por senha. A senha poderá ser definida ou mudada posteriormente através do comando ALTER USER.
Estas cláusulas controlam se a senha será armazenada criptografada, ou não, nos catálogos do sistema; Se não for especificada nenhuma destas cláusulas, o comportamento padrão será determinado pelo parâmetro de configuração password_encryption. Se a cadeia de caracteres da senha já estiver criptografada no formato MD5, então a cadeia de caracteres será armazenada como está, independentemente de ser especificado ENCRYPTED ou UNENCRYPTED (porque o sistema não pode descriptografar a cadeia de caracteres criptografada contendo a senha). Esta funcionalidade permite a restauração de senhas criptografadas efetuadas por uma operação de dump/restore.
Deve ser observado que os clientes antigos podem não possuir suporte para o mecanismo de autenticação MD5, necessário para trabalhar com as senhas que são armazenadas criptografadas.
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.
Deve ser usado o comando ALTER USER para mudar os atributos de um usuário, e DROP USER para remover um usuário. Deve se usado ALTER GROUP para adicionar ou remover usuários de grupos.
O PostgreSQL inclui o programa createuser que possui a mesma funcionalidade do CREATE USER (na verdade, chama este comando), mas pode ser executado a partir da linha de comando.
A cláusula VALID UNTIL define uma data de expiração para a senha apenas, e não para a conta do usuário per se. Em particular, a obediência à data de expiração não é imposta ao se conectar utilizando um método de autenticação não baseado em senha.
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 uma senha válida até o fim de 2004. Após o primeiro segundo de 2005 a senha não será mais válida.
CREATE USER miriam WITH PASSWORD 'jw8s0F4' VALID UNTIL '2005-01-01';
Criar uma conta onde o usuário pode criar bancos de dados:
CREATE USER manuel WITH PASSWORD 'jw8s0F4' CREATEDB;