ALTER USER
The ALTER USER
statement enables you to change a user's password. It also enables you to change the profile for the user, to lock or unlock the user's account, and to expire the user's password. A user with the ADMIN
privilege can perform these operations.
This statement also enables you to change a user from internal to external or from external to internal.
Required Privilege
No privilege is required to change the user's own password.
ADMIN
privilege is required for all other operations.
Usage with TimesTen Scaleout
This statement is supported with TimesTen Scaleout.
SQL Syntax
This is the syntax for ALTER
USER
...IDENTIFIED
BY
. Ensure to specify at least one of these clauses: IDENTIFIED
BY
, PROFILE
, ACCOUNT
, or PASSWORD
EXPIRE
.
ALTER USER user
[IDENTIFIED BY {password | "password"}]
[PROFILE profile] [ACCOUNT {LOCK|UNLOCK}] [PASSWORD EXPIRE];
This is the syntax for ALTER
USER
...IDENTIFIED
EXTERNALLY
. Ensure to specify at least one of these clauses: IDENTIFIED
EXTERNALLY
, PROFILE
, or ACCOUNT
.
ALTER USER user [IDENTIFIED EXTERNALLY] [PROFILE profile] [ACCOUNT {LOCK|UNLOCK}];
Parameters
Parameter | Description |
---|---|
|
Name of the user to alter. |
|
Specifies an internal user and the password for the internal user. The password you can specify is dependent on the profile assigned to the user. Specifically, the value of the |
|
Specifies the user is an external user. |
|
Use the |
|
Specify |
|
Specify |
Description
-
Database users can be internal or external.
-
Internal users are defined for a TimesTen database.
-
External users are defined by the operating system. External users cannot be assigned a TimesTen password.
-
- Password requirements:
- Cannot exceed 30 characters.
- Is case-sensitive.
- Must start with a letter. A password cannot start with a digit or a special character unless the password is enclosed in double quotation marks.
- If a special character is used, the password must be contained in double quotation marks. The exceptions are the
#
and the@
special characters. A password that contains the#
or the@
special character does not need to be enclosed in double quotation marks. - Cannot contain a semi-colon (
;
) or a double quotation mark ("
).
-
Use the
PROFILE
clause to change the profile for a user. See CREATE PROFILE for details. -
Use the
ACCOUNT
LOCK
orACCOUNT
UNLOCK
to change the lock settings for the user account. -
Use the
PASSWORD
EXPIRE
clause to expire the user's password and force a password change before the user can connect to the database. -
You can alter a user over a client/sever connection if the connection is encrypted with TLS. See Transport Layer Security for TimesTen Client/Server in the Oracle TimesTen In-Memory Database Security Guide for details.
-
When replication is configured, this statement is replicated.
Examples
Illustrate Password Verification When Altering User
This example creates the myprofile_strongpw
profile and specifies a value of TT_STRONG_VERIFY_FUNCTION
for the PASSWORD_COMPLEXITY_CHECKER
password parameter. The example then creates the sampleuser_pwchange
user and assigns the myprofile_strongpw
profile to this user. The specified password meets the requirements of the TT_STRONG_VERIFY_FUNCTION
function and the user is created. See TT_STRONG_VERIFY_FUNCTION for more information on the TT_STRONG_VERIFY_FUNCTION
function.
Command> CREATE PROFILE myprofile_strongpw LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_STRONG_VERIFY_FUNCTION;
Profile created.
Command> CREATE USER sampleuser_pwchange
IDENTIFIED BY "5&AbbN*60" PROFILE myprofile_strongpw;
User created.
Now alter the myprofile_strongpw profile
, changing the value of the PASSWORD_COMPLEXITY_CHECKER
password parameter to TT_STIG_VERIFY_FUNCTION
. Use the ALTER
USER
statement to expire the password for the sampleuser_pwchange
user. Attempt to connect to the database as the sampleuser_pwchange
user. The connection fails, as the password is expired.
Command> ALTER PROFILE myprofile_strongpw LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_STIG_VERIFY_FUNCTION;
Profile altered.
Command> ALTER USER sampleuser_pwchange PASSWORD EXPIRE;
User altered.
Command> GRANT CONNECT TO sampleuser_pwchange;
Command> connect adding "UID=sampleuser_pwchange;PWD=5&AbbN*60" as sampleuser;
15180: the password has expired
The command failed.
Use the ALTER
USER
statement to change the password for the sampleuser_pwchange
user. The ALTER
USER
statement succeeds, as the password meets the requirements of the TT_STIG_VERIFY_FUNCTION
function. Attempt to connect to the database as the sampleuser_pwchange
user. The connection is successful. See TT_STIG_VERIFY_FUNCTION for more information on the TT_STIG_VERIFY_FUNCTION
function.
access1: Command> ALTER USER sampleuser_pwchange
IDENTIFIED BY "bd@<!BCvvKASn67";
User altered.
Command> connect adding "UID=sampleuser_pwchange;PWD=bd@<!BCvvKASn67"
as sampleuser;
Connection successful: DSN=access1;UID=sampleuser_pwchange;
DataStore=/scratch/sampleuser/mydatabase1;DatabaseCharacterSet=AL32UTF8;
ConnectionCharacterSet=AL32UTF8;PermSize=128;
(Default setting AutoCommit=1)
Change the User's Profile
This example creates the user1
user and assigns the user1
user the profile1
profile. The example then uses the ALTER
USER
statement to change the user1
user's profile to profile2
.
Command> CREATE USER user1 IDENTIFIED BY user1 PROFILE profile1; User created. Command> ALTER USER user1 PROFILE profile2; User altered.
Query the dba_users
system view to verify the user1
profile has been changed to profile2
.
Command> SELECT profile FROM dba_users WHERE username = 'USER1'; < PROFILE2 > 1 row found.
Lock and Unlock a User's Account
This example creates the user2
user. It then uses the ALTER
USER
statement to lock and then unlock the user2
user's account.
Command> CREATE USER user2 IDENTIFIED BY user2 PROFILE profile1; User created. Command> ALTER USER user2 ACCOUNT LOCK; User altered.
Grant the CONNECT
privilege to user2
;
Command> GRANT CONNECT TO user2;
Attempt to connect to the database as user2
. The user2
account is locked so the connection fails.
Command> connect adding "UID=user2;PWD=user2" as user2; 15179: the account is locked The command failed.
As the instance administrator, reconnect to the database and use the ALTER
USER
statement to unlock the user2
account.
none: Command> use database1 database1: Command> ALTER USER user2 ACCOUNT UNLOCK; User altered.
Attempt to connect to the database as the user2
user. The connection succeeds.
database1: Command> connect adding "UID=user2;PWD=user2" as user2; Connection successful: DSN=database1;UID=user3;DataStore=/scratch/database1; DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;PermSize=128; (Default setting AutoCommit=1)
Expire a User's Password
This example uses the ALTER
USER
statement to change the user2
user's account to expire the password. A user with ADMIN
privilege must change the user2
password before user2
can connect to the database.
Command> ALTER USER user2 PASSWORD EXPIRE; User altered.
Attempt to connect to the database as user2
. The user2
password must be changed before the user2
user can connect to the database.
Command> connect adding "UID=user2;PWD=user2" as user2; 15180: the password has expired The command failed.
As the instance administrator, reconnect to the database and use the ALTER
USER
statement to change the user2
password.
none: Command> use database1 database1: Command> ALTER USER user2 IDENTIFIED BY newuser2password; User altered.
Attempt to connect to the database a the user2
user. The connection succeeds.
database1: Command> connect adding "UID=user2;PWD=newuser2password" as user2; Connection successful: DSN=database1;UID=user4;DataStore=/scratch/database1; DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;PermSize=128; (Default setting AutoCommit=1)
Change a User from External to Internal and Internal to External
This example uses the ALTER
USER
statement to change the user2
internal user to an external user and then back to an internal user.
Command> ALTER USER user2 IDENTIFIED EXTERNALLY; User altered.
Use the ALTER
USER
statement to change the user2
external user back to an internal user.
Command> ALTER USER user2 IDENTIFIED BY user2_password_change; User altered.
See Also