CREATEUSER(1) PostgreSQL Client Applications CREATEUSER(1)NAMEcreateuser - define a new PostgreSQL user account
SYNOPSIScreateuser [ options... ] [ username ]
DESCRIPTIONcreateuser creates a new PostgreSQL user. Only superusers
(users with usesuper set in the pg_shadow table) can cre-
ate new PostgreSQL users, so createuser must be invoked by
someone who can connect as a PostgreSQL superuser.
Being a superuser also implies the ability to bypass
access permission checks within the database, so supe-
ruserdom should not be granted lightly.
createuser is a shell script wrapper around the SQL com-
mand CREATE USER [create_user(l)] via the PostgreSQL
interactive terminal psql(1). Thus, there is nothing spe-
cial about creating users via this or other methods. This
means that the psql application must be found by the
script and that a database server must be running at the
targeted host. Also, any default settings and environment
variables used by psql and the libpq front-end library
will apply.
OPTIONScreateuser accepts the following command-line arguments:
username
Specifies the name of the PostgreSQL user to be
created. This name must be unique among all Post-
greSQL users.
-a
--adduser
The new user is allowed to create other users.
(Note: Actually, this makes the new user a supe-
ruser. The option is poorly named.)
-A
--no-adduser
The new user is not allowed to create other users
(i.e., the new user is a regular user, not a supe-
ruser).
-d
--createdb
The new user is allowed to create databases.
-D
--no-createdb
The new user is not allowed to create databases.
-e
--echo Echo the queries that createuser generates and
sends to the server.
-E
--encrypted
Encrypts the user's password stored in the
database. If not specified, the default is used.
-i uid
--sysid uid
Allows you to pick a non-default user ID for the
new user. This is not necessary, but some people
like it.
-N
--unencrypted
Does not encrypt the user's password stored in the
database. If not specified, the default is used.
-P
--pwprompt
If given, createuser will issue a prompt for the
password of the new user. This is not necessary if
you do not plan on using password authentication.
-q
--quiet
Do not display a response.
You will be prompted for a name and other missing informa-
tion if it is not specified on the command line.
createuser also accepts the following command-line argu-
ments for connection parameters:
-h host
--host host
Specifies the host name of the machine on which the
server is running. If host begins with a slash, it
is used as the directory for the Unix domain
socket.
-p port
--port port
Specifies the Internet TCP/IP port or local Unix
domain socket file extension on which the server is
listening for connections.
-U username
--username username
User name to connect as (not the user name to cre-
ate)
-W
--password
Force password prompt (to connect to the server,
not for the password of the new user).
ENVIRONMENT
PGHOST
PGPORT
PGUSER Default connection parameters
DIAGNOSTICS
CREATE USER
All is well.
createuser: creation of user "username" failed
Something went wrong. The user was not created.
If there is an error condition, the backend error message
will be displayed. See CREATE USER [create_user(l)] and
psql(1) for possibilities.
EXAMPLES
To create a user joe on the default database server:
$ createuser joe
Is the new user allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
To create the same user joe using the server on host eden,
port 5000, avoiding the prompts and taking a look at the
underlying query:
$ createuser-p 5000 -h eden -D -A -e joe
CREATE USER "joe" NOCREATEDB NOCREATEUSER
CREATE USER
SEE ALSOdropuser(1), CREATE USER [create_user(l)]
Application 2002-11-22 CREATEUSER(1)