Restricted Session: - This Privilege Allows You To Log in Even If The Database Has Been Opened in Restricted Mode
Restricted Session: - This Privilege Allows You To Log in Even If The Database Has Been Opened in Restricted Mode
• This privilege allows you to log in even if the database has been opened in
restricted mode.
‘alter system enable restricted session ‘ does not “kick out” user automatically. It
just blocks new user who does not have the ‘restrict session’ privilege to login, similar to ‘ALTER
SYSTEM QUIESCE RESTRICTED’, which blocks new non-dba users. However, I can scarely see the
instances when non-dba users have been granted to the ‘restrict session’ privilege.
Non-DBA active sessions will continue until they become inactive. An active session is one that is
currently inside of a transaction, a query, a fetch, or a PL/SQL statement; or a session that is
currently holding any shared resources (for example, enqueues). No inactive sessions are allowed to
become active. For example, If a user issues a SQL query in an attempt to force an inactive session to
become active, the query will appear to be hung. When the database is later unquiesced, the session
is resumed, and the blocked action is processed.
All non-DBA activity is allowed to proceed. In an Oracle Real Application Clusters environment, this
statement is not required to be issued from the same session, or even the same instance, as that
which quiesced the database. If the session issuing the ALTER SYSTEM UNQUIESCEstatement
terminates abnormally, then the Oracle Database server ensures that the unquiesce operation
completes.
The ACTIVE_STATE column of the V$INSTANCE view to see the current state of an instance. The
column values has one of these values:
NORMAL: Normal unquiesced state.
QUIESCING: Being quiesced, but some non-DBA sessions are still active.
QUIESCED: Quiesced; no non-DBA sessions are active or allowed.
Terminating Sessions
Sometimes it is necessary to terminate current user sessions. For example, you might want to
perform an administrative operation and need to terminate all non-administrative sessions. This
section describes the various aspects of terminating sessions, and contains the following topics:
When a session is terminated, any active transactions of the session are rolled back, and resources
held by the session (such as locks and memory areas) are immediately released and available to
other sessions.
You terminate a current session using the SQL statement ALTER SYSTEM KILL SESSION. The
following statement terminates the session whose system identifier is 7 and serial number is 15:
FROM V$SESSION
7 15 ACTIVE
12 63 INACTIVE
If, after receiving the ORA-00028 message, a user submits additional statements before reconnecting to the
database, Oracle Database returns the following message:
An active session cannot be interrupted when it is performing network I/O or rolling back a transaction. Such a
session cannot be terminated until the operation completes. In this case, the session holds all resources until it
is terminated. Additionally, the session that issues the ALTER SYSTEM statement to terminate a session waits
up to 60 seconds for the session to be terminated. If the operation that cannot be interrupted continues past one
minute, the issuer of the ALTER SYSTEM statement receives a message indicating that the session has been
marked to be terminated. A session marked to be terminated is indicated in V$SESSION with a status
of KILLED and a server that is something other than PSEUDO.
When an inactive session has been terminated, the STATUS of the session in the V$SESSION view is KILLED.
The row for the terminated session is removed from V$SESSION after the user attempts to use the session
again and receives the ORA-00028 message.
SELECT SID,SERIAL#,STATUS,SERVER
FROM V$SESSION
7 15 INACTIVE DEDICATED
12 63 INACTIVE DEDICATED
2 rows selected.
ALTER SYSTEM KILL SESSION '7,15';
Statement processed.
FROM V$SESSION
7 15 KILLED PSEUDO
12 63 INACTIVE DEDICATED
2 rows selected.