PostgreSQL – createuser
Nome
createuser – cria uma conta de usuário do PostgreSQL
Descrição
O utilitário createuser cria um novo usuário do PostgreSQL (ou mais precisamente, um papel). Somente os superusuários e os usuários com o privilégio CREATEROLE podem criar novos usuários e, portanto, o utilitário createuser deve ser executado por alguém que possa se conectar como superusuário ou um usuário com o privilégio CREATEROLE.
Se for desejado criar um novo superusuário a conexão deverá ser feita por um superusuário, e não simplesmente por usuário comum com o privilégio CREATEROLE. Ser um superusuário implica em não estar sujeito às verificações de permissão de acesso do banco de dados e, portanto, a condição de superusuário deve ser concedida criteriosamente.
O createuser é um invólucro em torno do comando CREATE ROLE do SQL. Não existe diferença efetiva entre criar usuários através deste utilitário, ou através de outros métodos para acessar o servidor.
Opções
O createuser aceita os seguintes argumentos de linha de comando:
- nome_do_usuário
- Especifica o nome do usuário do PostgreSQL a ser criado. O nome deve ser diferente de todos os papéis existentes nesta instalação do PostgreSQL.
- -s
–superuser - O novo usuário é um superusuário.
- -S
–no-superuser - O novo usuário não é um superusuário. Este é o padrão.
- -d
–createdb - O novo usuário tem permissão para criar bancos de dados.
- -D
–no-createdb - O novo usuário não tem permissão para criar bancos de dados. Este é o padrão.
- -r
–createrole - O novo usuário tem permissão para criar novos papéis (ou seja, este usuário possui o privilégio CREATEROLE).
- -R
–no-createrole - O novo usuário não tem permissão para criar novos papéis. Este é o padrão.
- -l
–login - O novo usuário tem permissão para conectar (ou seja, este nome de usuário pode ser utilizado como identificador do usuário inicial da sessão). Este é o padrão.
- -L
–no-login - O novo usuário não tem permissão para conectar (um papel sem o privilégio LOGIN ainda é útil como forma de gerenciar permissões do banco de dados).
- -i
–inherit - O novo papel herda, automaticamente, os privilégios dos papéis dos quais é membro. Este é o padrão.
- -I
–no-inherit - O novo papel não herda automaticamente os privilégios dos papéis dos quais é membro.
- -c número
–connection-limit número - Define o número máximo de conexões para o novo usuário. O padrão é definir como sem limite.
- -P
–pwprompt - Se for especificado, o createuser solicitará a senha do novo usuário. Não é necessário caso não se planeje usar autenticação por senha.
- -E
–encrypted - Criptografa a senha do usuário armazenada no banco de dados. Se não for especificado, será utilizado o comportamento padrão para senhas.
- -N
–unencrypted - Não criptografa a senha do usuário armazenada no banco de dados. Se não for especificado, será utilizado o comportamento padrão para senhas.
- -e
–echo - Mostra os comandos que o createuser gera e envia para o servidor.
- -q
–quiet - Não exibe resposta.
Será solicitado o nome e outras informações que estejam faltando, se não forem especificadas na linha de comando.
O createuser também aceita os seguintes argumentos de linha de comando para os parâmetros de conexão:
- -h hospedeiro
–host hospedeiro - Especifica o nome de hospedeiro da máquina onde o servidor está executando. Se o nome iniciar por barra (/), será utilizado como o diretório do soquete do domínio Unix.
- -p porta
–port porta - Especifica a porta TCP, ou a extensão do arquivo de soquete do domínio Unix local, onde o servidor está atendendo as conexões.
- -U nome_do_usuário
–username nome_do_usuário - Nome do usuário para conectar (e não o nome do usuário a ser criado).
- -W
–password - Força a solicitação da senha (para conectar ao servidor, e não a senha do novo usuário).
Diagnósticos
Havendo dificuldade, veja no comando CREATE ROLE e no psql a discussão dos problemas possíveis e as mensagens de erro. O servidor de banco de dados deve estar executando no hospedeiro de destino. Também se aplicam todas as definições de conexão padrão e as variáveis de ambiente utilizadas pela biblioteca cliente libpq.
Exemplos
Para criar o usuário joel no servidor de banco de dados padrão:
$ createuser joel O novo papel será um superusuário? (s/n) n O novo papel poderá criar bancos de dados? (s/n) n O novo papel poderá criar novos papéis? (s/n) n CREATE USER
Criar o mesmo usuário joel usando o servidor no hospedeiro eden, porta 5000, evitando solicitação de informação e vendo o comando subjacente:
$ createuser -h eden -p 5000 -S -D -R -e joel CREATE ROLE joel NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN; CREATE ROLE
Criar o usuário joel como um superusuário e atribuir uma senha criptografada imediatamente:
$ createuser -P -s -E -e joel Digite a senha do novo papel: xyzzy Digite novamente: xyzzy CREATE ROLE joel PASSWORD 'md58c5635dc3b41432cacfbb67c661a0e36' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; CREATE ROLE
Criar o usuário joel como um superusuário e atribuir uma senha não criptografada imediatamente:
$ createuser -P -s -N -e joel Digite a senha do novo papel: xyzzy Digite novamente: xyzzy CREATE ROLE joel PASSWORD 'xyzzy' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; CREATE ROLE
Nos dois exemplos acima a nova senha não é realmente mostrada ao ser digitada, mas está mostrado o que foi digitado para ficar mais claro. Entretanto, a senha aparecerá no comando mostrado, conforme está ilustrado — portanto, não será desejado utilizar a opção -e ao atribuir uma senha não criptografada quando outra pessoa puder ver a tela. [1]
Notas
| [1] | No manual original só é mostrado o caso da senha não criptografada. Nesta tradução foi adicionado o caso da senha criptografada para ficar mais claro. (N. do T.) |
Fonte: http://pgdocptbr.sourceforge.net
Nenhum Post Relacionado.
Artigos parecidos fornecidos por Yet Another Related Posts Plugin.




Sempre que tento criar um superusuário eu tenho um problema. Fatal: role “pk” não existe, a mensagem aparece logo depois de eu dar o comando createuser pk, pergunta se vai poder criar o superusuario e aparece a mensagem.
Pergunto como devo proceder para criar uma superusuário e também criar um papel.
Sou novato no assunto.
Obrigado.