CREATE USER
On this page
Create a new user account.
Syntax
CREATE USER user[@host][IDENTIFIED BY 'password'][WITH {DEFAULT RESOURCE POOL = poolname} |{FAILED_LOGIN_ATTEMPTS = integer PASSWORD_LOCK_TIME = integer} |{DEFAULT RESOURCE POOL = poolname FAILED_LOGIN_ATTEMPTS = integer PASSWORD_LOCK_TIME = integer}][REQUIRE {SSL | NONE}]
Note
Instead of authentication by password, other authentication types: Kerberos, PAM, and SAML can also be used with the clause.
        IDENTIFIED WITH {authentication_
      
        CREATE USER user IDENTIFIED WITH authentication_
      
        CREATE USER user IDENTIFIED WITH authentication_
      
See section “Using PAM Pluggable Authentication” here.
Arguments
user: The name of the user.
- 
        
Non-JWT users: Maximum length of 32 characters.
 - 
        
JWT users: Maximum length of 320 characters.
 
host: The host that the user can connect from.localhost means the user account can be used only when connecting from the local host.% wildcard will be used, which allows the user to connect from any host.
password: An optional database connection password.
poolname: The default resource pool for the user.
FAILED_PASSWORD_, specifies the failed login attempt lockout behavior.FAILED_ is the number of failed attempts allowed before the account is locked out.0 which means there is no restriction.PASSWORD_ must also be specified.
PASSWORD_FAILED_, specifies the failed login attempt lockout behavior.PASSWORD_ is the number of seconds a locked out account must wait before reattempting to log in.
REQUIRE: has the following options:
- 
        
SSLoption ensures that the user connects via SSL. - 
        
NONEspecifies that SSL will not be required for the connection. 
Note
You must set both FAILED_ and PASSWORD_ to enable the lockout feature.
To modify the FAILED_ and PASSWORD_ settings for a user, or to unlock a locked user, use ALTER USER.
If an account is locked either manually using the ALTER USER … ACCOUNT LOCK command or automatically as a result of exceeding the values specified for FAILED_ and PASSWORD_ arguments then restarting the cluster removes the lock and returns the account’s status to ONLINE.ACCOUNT_ column in the information_
For more information about failed login attempt lockout behavior, see Securing SingleStore.
ATTRIBUTE and COMMENT: Optional arguments used to provide additional information about a user.ATTRIBUTE must come first.
Remarks
- 
        
The
CREATE USERcommand must be run by a user with administrative privileges on the database.Also, the new user does not have any privileges granted by default. Use GRANT to specify privileges for the new user.  - 
        
The
WITHkeyword must be used with the following options and should be specified only once:- 
            
[
DEFAULT RESOURCE POOL = <poolname>] - 
            
[
FAILED_]LOGIN_ ATTEMPTS = integer PASSWORD_ LOCK_ TIME = <integer>  
WITH DEFAULT RESOURCE POOL = pool1 FAILED_LOGIN_ATTEMPTS = 10 PASSWORD_LOCK_TIME = 20or
WITH FAILED_LOGIN_ATTEMPTS = 10 PASSWORD_LOCK_TIME = 20or
WITH DEFAULT RESOURCE POOL = pool1 - 
            
 - 
        
This command causes implicit commits.
Refer to COMMIT for more information.  - 
        
The
CREATE USERcommand only applies to the current node unless thesync_engine variable is set topermissions ON. - 
        
The
CREATE USERcommand holds a global lock on the cluster until the processing of the command is completed.See Cluster Level Locks for more info.  - 
        
Refer to the Permission Matrix for the required permissions.
 
Examples
The following example demonstrates how to add a new user and grant it the SELECT privilege on all tables in the mydb database:
CREATE USER joe;GRANT SELECT ON mydb.* TO 'joe'@'%';
The following example demonstrates how to create a resource pool and assign it to a new user along with controlling the login attempts"
CREATE RESOURCE POOL test_pool WITH QUERY_TIMEOUT = 20;CREATE USER user1 IDENTIFIED BY 'User123' WITH DEFAULT RESOURCE POOL = test_pool FAILED_LOGIN_ATTEMPTS = 3 PASSWORD_LOCK_TIME = 14400;
Last modified: October 23, 2025