CREATE USER (Deprecated)

Deprecated. Creates a new user.

CREATE USER is supported for backwards compatibility only. Authentication and authorization for DataStax Enterprise 5.0 and later are based on ROLES, and use CREATE ROLE instead.

CREATE USER defines a new database user account. By default users accounts do not have superusersuperuser status. Only a superuser can issue CREATE USER requests. See CREATE ROLE for more information about SUPERUSER and NOSUPERUSER.

User accounts are required for logging in under internal authenticationinternal authentication and authorization.

Enclose the user name in single quotation marks if it contains non-alphanumeric characters. You cannot recreate an existing user. To change the superuser status, password or hashed password, use ALTER USER.

Synopsis

CREATE USER [ IF NOT EXISTS ] user_name 
  ( WITH PASSWORD 'user_password' |
  WITH HASHED PASSWORD 'hashed_user_password' )
  [ ( SUPERUSER | NOSUPERUSER ) ] ;
Table 1. Legend
Syntax conventions Description
UPPERCASE Literal keyword.
Lowercase Not literal.
Italics Variable value. Replace with a user-defined value.
[] Optional. Square brackets ( [] ) surround optional command arguments. Do not type the square brackets.
( ) Group. Parentheses ( ( ) ) identify a group to choose from. Do not type the parentheses.
| Or. A vertical bar ( | ) separates alternative elements. Type any one of the elements. Do not type the vertical bar.
... Repeatable. An ellipsis ( ... ) indicates that you can repeat the syntax element as often as required.
'Literal string' Single quotation ( ' ) marks must surround literal strings in CQL statements. Use single quotation marks to preserve upper case.
{ key : value } Map collection. Braces ( { } ) enclose map collections or key value pairs. A colon separates the key and the value.
<datatype1,datatype2> Set, list, map, or tuple. Angle brackets ( < > ) enclose data types in a set, list, map, or tuple. Separate the data types with a comma.
cql_statement; End CQL statement. A semicolon ( ; ) terminates all CQL statements.
[--] Separate the command line options from the command arguments with two hyphens ( -- ). This syntax is useful when arguments might be mistaken for command line options.
' <schema> ... </schema> ' Search CQL only: Single quotation marks ( ' ) surround an entire XML schema declaration.
@xml_entity='xml_entity_type' Search CQL only: Identify the entity and literal value to overwrite the XML element in the schema and solrConfig files.

Examples

Creating internal user accounts

Use WITH PASSWORD to create a user account for internal authentication, ennclosing the password in single quotation marks:
CREATE USER spillman WITH PASSWORD 'Niner27';
If internal authentication has not been set up, WITH PASSWORD is not required:
CREATE USER tony NOSUPERUSER;
Use WITH HASHED PASSWORD to create a user account for internal authentication with a hashed password enclosed in single quotation marks:
CREATE USER jane 
  WITH HASHED PASSWORD = '$2a$10$xsAJKfU.ZUzcuM9REniQoO8jUzBx0B.ChEl5w86TFcOv5ZhARo/uq';
Create a user as a superuser:
CREATE USER akers WITH PASSWORD 'Niner2' SUPERUSER;
or as a non-superuser:
CREATE USER akers WITH PASSWORD 'Niner75' NOSUPERUSER;
Note that a password and superuser status can be set in one command.

Creating a user account conditionally

You can test that the user does not have an account before attempting to create one. Attempting to create an existing user results in an invalid query condition unless the IF NOT EXISTS option is used. If the option is used, the statement will be a no-op if the user exists.

Create a user with IF NOT EXISTS:
CREATE USER bonnie IF NOT EXISTS WITH PASSWORD 'heydo';