Oracle® Database SQL Reference 10g Release 1 (10.1) Part Number B10759-01 |
|
|
View PDF |
Purpose
Use the ALTER
USER
statement:
To change the authentication or database resource characteristics of a database user
To permit a proxy server to connect as a client without authentication
Prerequisites
You must have the ALTER
USER
system privilege. However, you can change your own password without this privilege.
Syntax
Semantics
The keywords, parameters, and clauses described in this section are unique to ALTER
USER
or have different semantics than they have in CREATE
USER
. Keywords, parameters, and clauses that do not appear here have the same meaning as in the CREATE
USER
statement.
Note: Oracle Corporation recommends that user names and passwords be encoded in ASCII or EBCDIC characters only, depending on your platform. Please refer to Oracle Database Administrator's Guide for more information about this recommendation. |
See Also: CREATE USER for information on the keywords and parameters and CREATE PROFILE for information on assigning limits on database resources to a user |
Specify BY
password
to specify a new password for the user.
Note: Oracle Database expects a different timestamp for each resetting of a particular password. If you reset one password multiple times within one second (for example, by cycling through a set of passwords using a script), then the database may return an error message that the password cannot be reused. For this reason, Oracle recommends that you avoid using scripts to reset passwords. |
You can omit the REPLACE
clause if you are setting your own password for the first time or you have the ALTER
USER
system privilege and you are changing another user's password. However, unless you have the ALTER
USER
system privilege, you must always specify the REPLACE
clause if a password complexity verification function has been enabled, either by running the UTLPWDMG.SQL
script or by specifying such a function in the PASSWORD_VERIFY_FUNCTION
parameter of a profile that has been assigned to the user.
Oracle Database does not check the old password, even if you provide it in the REPLACE
clause, unless you are changing your own existing password. If such a check is important in other cases (for example, when a privileged user changes another user's password), then ensure that the password complexity verification function prohibits password changes in which the old password is null, or use the OCIPasswordChange()
call instead of ALTER
USER
. For more information, see Oracle Call Interface Programmer's Guide.
See Also: Oracle Database Administrator's Guide for information on the password complexity verification function |
Specify
GLOBALLY
AS
'external_name
' to indicate that the user must be authenticated by way of an LDAP V3 compliant directory service such as Oracle Internet Directory.
You can change a user's access verification method to IDENTIFIED
GLOBALLY
AS
'external_name
' only if all external roles granted directly to the user are revoked.
You can change a user created as IDENTIFIED
GLOBALLY
AS
'external_name
' to IDENTIFIED
BY
password
or IDENTIFIED
EXTERNALLY
.
Use this clause to assign or reassign a tablespace for the user's permanent segments. This clause overrides any default tablespace that has been specified for the database.
Use this clause to assign or reassign a tablespace or tablespace group for the user's temporary segments.
Specify tablespace
to indicate the user's temporary tablespace.
Specify tablespace_group_name
to indicate that the user can save temporary segments in any tablespace in the tablespace group specified by tablespace_group_name
.
Any individual tablespace you assign or reassign as the user's temporary tablespace must be a temporary tablespace and must have a standard block size.
Specify the roles granted by default to the user at logon. This clause can contain only roles that have been granted directly to the user with a GRANT
statement. You cannot use the DEFAULT
ROLE
clause to enable:
Roles not granted to the user
Roles granted through other roles
Roles managed by an external service (such as the operating system), or by the Oracle Internet Directory
Oracle Database enables default roles at logon without requiring the user to specify their passwords or otherwise be authenticated. If you have granted an application role to the user, you should use the DEFAULT
ROLE
ALL
EXCEPT
role
clause to ensure that, in subsequent logons by the user, the role will not be enabled except by applications using the authorized package.
The proxy_clause
lets you control the ability of a proxy (an application or application server) to connect as the specified database or enterprise user and to activate all, some, or none of the user's roles.
The proxy_clause
provides several varieties of proxy authentication of database and enterprise users. For information on proxy authentication of application users, see Oracle Database Application Developer's Guide - Fundamentals.
See Also: Oracle Database Concepts for more information on proxies and their use of the database and "Proxy Users: Examples" |
Specify GRANT
to allow the connection. Specify REVOKE
to prohibit the connection.
Identify the proxy connecting to Oracle Database. Oracle Database expects the proxy to authenticate the user unless you specify the AUTHENTICATED
USING
clause.
WITH
ROLE
role_name
permits the proxy to connect as the specified user and to activate only the roles that are specified by role_name.
WITH
ROLE
ALL
EXCEPT
role_name
permits the proxy to connect as the specified user and to activate all roles associated with that user except those specified for role_name
.
WITH
NO
ROLES
permits the proxy to connect as the specified user, but prohibits the proxy from activating any of that user's roles after connecting.
If you do not specify any of these WITH
clauses, then Oracle Database activates all roles granted to the specified user automatically.
Use this clause to indicate how you want the proxy authenticated. This clause is valid only as part of the GRANT
CONNECT
THROUGH
proxy
clause (not REVOKE
CONNECT
THROUGH
proxy
).
Specify AUTHENTICATION
REQUIRED
to ensure that authentication credentials for the user must be presented when the user is authenticated through the specified proxy. The credential is a password.
This clause has been deprecated and is ignored if you use it in your code. Oracle recommends that you specify the proxy clause either with or without the AUTHENTICATION
REQUIRED
clause.
See Also:
|
Examples
The following statement changes the password of the user sidney
(created in "Creating a Database User: Example") second_2nd_pwd
and default tablespace to the tablespace example
:
ALTER USER sidney IDENTIFIED BY second_2nd_pwd DEFAULT TABLESPACE example;
The following statement assigns the new_profile
profile (created in "Creating a Profile: Example") to the sample user sh
:
ALTER USER sh PROFILE new_profile;
In subsequent sessions, sh
is restricted by limits in the new_profile
profile.
The following statement makes all roles granted directly to sh
default roles, except the dw_manager
role:
ALTER USER sh DEFAULT ROLE ALL EXCEPT dw_manager;
At the beginning of sh
's next session, Oracle Database enables all roles granted directly to sh
except the dw_manager
role.
The following statement changes the authentication mechanism of user app_user1
(created in "Creating a Database User: Example")
:
ALTER USER app_user1 IDENTIFIED GLOBALLY AS 'CN=tom,O=oracle,C=US';
The following statement causes user sidney
's password to expire:
ALTER USER sidney PASSWORD EXPIRE;
If you cause a database user's password to expire with PASSWORD
EXPIRE
, then the user (or the DBA) must change the password before attempting to log in to the database following the expiration. However, tools such as SQL*Plus allow the user to change the password on the first attempted login following the expiration.
The following statement assigns tbs_grp_01
(created in "Adding a Temporary Tablespace to a Tablespace Group: Example") as the tablespace group for user sh
:
ALTER USER sh TEMPORARY TABLESPACE tbs_grp_01;
The following statement alters the user app_user1
. The example permits the app_user1
to connect through the proxy user sh
. The example also allows app_user1
to enable its warehouse_user
role (created in "Creating a Role: Example") when connected through the proxy sh
:
ALTER USER app_user1 GRANT CONNECT THROUGH sh WITH ROLE warehouse_user;
To show basic syntax, this example uses the sample database Sales History user (sh
) as the proxy. Normally a proxy user would be an application server or middle-tier entity. For information on creating the interface between an application user and a database by way of an application server, please refer to Oracle Call Interface Programmer's Guide.
See Also:
|
The following statement takes away the right of user app_user1
to connect through the proxy user sh
:
ALTER USER app_user1 REVOKE CONNECT THROUGH sh;
The following hypothetical examples shows another method of proxy authentication:
ALTER USER sully GRANT CONNECT THROUGH OAS1 AUTHENTICATED USING PASSWORD;