CREATE USER
Adds a name to the list of authorized database users.
Note
New users lack default access to the PUBLIC schema. Be sure to grant new users USAGE privileges on the PUBLIC schema.Syntax
CREATE USER user-name [ parameter value[,...] ]
Arguments
user-name
- Name of the new user, where the value conforms to conventions described in Identifiers.
parameter
value
- One or more user account parameter settings (see below). Note that the parameter name and value are separated by a space, not
=
.
Parameters
ACCOUNT
Locks or unlocks user access to the database, one of the following:
-
UNLOCK
(default) -
LOCK
prevents a new user from logging in. This can be useful when creating an account for a user who does not need immediate access.
Tip
To automate account locking, set a maximum number of failed login attempts with CREATE PROFILE.-
GRACEPERIOD
Specifies how long a user query can block on any session socket, one of the following:
-
NONE
(default): Removes any grace period previously set on session queries. -
'
interval
'
: Specifies as an interval the maximum grace period for current session queries, up to 20 days.
For details, see Handling session socket blocking.
-
IDENTIFIED BY { '
password
' | '
hashed-password
' SALT '
hash-salt
' }
- Sets the user's password. Options are:
-
password
: ASCII password that Vertica then hashes for internal storage. An empty string enables this user to access the database with no password. -
hashed-password
: A pre-hashed password and its associated hex stringhash-salt
. Setting a password this way bypasses all password complexity requirements.
Important
If you omit this parameter, this user can access the database with no password.For details, see Password guidelines and Creating a database name and password.
-
IDLESESSIONTIMEOUT
The length of time the system waits before disconnecting an idle session, one of the following:
-
NONE
(default): No limit set for this user. If you omit this parameter, no limit is set for this user. -
'interval'
: An interval value, up to one year.
For details, see Managing client connections.
-
MAXCONNECTIONS
Sets the maximum number of connections the user can have to the server, one of the following:
-
NONE
(default): No limit set. If you omit this parameter, the user can have an unlimited number of connections across the database cluster. -
integer
ON DATABASE
: Sets tointeger
the maximum number of connections across the database cluster. -
integer
ON NODE
: Sets tointeger
the maximum number of connections to each node.
For details, see Managing client connections.
-
MEMORYCAP
Sets how much memory can be allocated to user requests, one of the following:
-
NONE
(default): No limit -
A string value that specifies the memory limit, one of the following:
-
'
int
%'
expresses the maximum as a percentage of total memory available to the Resource Manager, whereint
is an integer value between 0 and 100.For example:MEMORYCAP '40%'
-
'
int
{K|M|G|T}'
expresses memory allocation in kilobytes, megabytes, gigabytes, or terabytes. For example:MEMORYCAP '10G'
-
-
PASSWORD EXPIRE
Forces immediate expiration of the user's password. The user must change the password on the next login.
Note
PASSWORD EXPIRE
has no effect when using external password authentication methods such as LDAP or Kerberos.PROFILE
Assigns a profile that controls password requirements for this user, one of the following:
-
DEFAULT
(default): Assigns the default database profile to this user. -
profile-name: A profile that is defined by CREATE PROFILE.
If you omit this parameter, the user is assigned the default profile.
-
RESOURCE POOL
pool-name
[FOR SUBCLUSTER
sc-name
]
Assigns a resource pool to this user. The user must also be granted privileges to this pool, unless privileges to the pool are set to
PUBLIC
.The
FOR SUBCLUSTER
clause assigns a subcluster-specific resource pool to the user. You can assign only one subcluster-specific resource pool to each user.RUNTIMECAP
Sets how long this user's queries can execute, one of the following:
-
NONE
(default): No limit set for this user. If you omit this parameter, no limit is set for this user. -
'interval'
: An interval value, up to one year.
A query's runtime limit can be set at three levels: the user's runtime limit, the user's resource pool, and the session setting. For more information, see Setting a runtime limit for queries.
-
SEARCH_PATH
Specifies the user's default search path, that tells Vertica which schemas to search for unqualified references to tables and UDFs, one of the following:
-
DEFAULT
(default): Sets the search path as follows:"$user", public, v_catalog, v_monitor, v_internal
-
Comma-delimited list of schemas.
For details, see Setting Search Paths.
-
TEMPSPACECAP
Sets how much temporary file storage is available for user requests, one of the following:
-
NONE
(default): No limit -
String value that specifies the storage limit, one of the following:
-
int
%
expresses the maximum as a percentage of total temporary storage available to the Resource Manager, whereint
is an integer value between 0 and 100. For example:TEMPSPACECAP '40%'
-
int
{K|M|G|T}
expresses storage allocation in kilobytes, megabytes, gigabytes, or terabytes. For example:TEMPSPACECAP '10G'
-
-
Privileges
Superuser
User name best practices
Vertica database user names are logically separate from user names of the operating system in which the server runs. If all the users of a particular server also have accounts on the server's machine, it makes sense to assign database user names that match their operating system user names. However, a server that accepts remote connections might many database users with no local operating system account. In this case, there is no need to connect database and system user names.
Examples
=> CREATE USER Fred IDENTIFIED BY 'Mxyzptlk';
=> GRANT USAGE ON SCHEMA PUBLIC to Fred;