oracle system用户被锁定
时间: 2023-03-16 14:46:49 浏览: 135
当Oracle系统用户被锁定时,可能是由于多次输入错误的密码或者管理员手动锁定账户。要解锁该用户,需要使用管理员账户登录Oracle数据库,然后执行以下命令:
ALTER USER username ACCOUNT UNLOCK;
其中,username是被锁定的用户账户名。执行该命令后,该用户账户将被解锁,可以重新登录系统。
相关问题
Oracle 12c 如何查看个IP导致用户被锁定
要查看哪个IP地址导致了用户被锁定,可以使用 Oracle 数据库自带的审计功能。具体步骤如下:
1. 登录到 Oracle 数据库中的 SYS 用户。
2. 执行以下命令启用审计功能:
```
SQL> ALTER SYSTEM SET audit_trail=db SCOPE=spfile;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
```
3. 使用管理员权限创建审计策略:
```
SQL> CREATE AUDIT POLICY lock_user_policy
ACTIONS RESTRICTED
WHEN 'FAILED_LOGIN_ATTEMPTS >= 3'
EVALUATE PER SESSION
COMMENT 'Audit lock user events';
```
4. 启用刚才创建的审计策略:
```
SQL> AUDIT POLICY lock_user_policy;
```
5. 然后可以通过以下命令查询审计日志,找到导致用户被锁定的 IP 地址:
```
SQL> SELECT dbusername, username, terminal, action_name, returncode, extended_timestamp
FROM dba_audit_session
WHERE action_name = 'LOGON'
AND returncode = 1017;
```
在查询结果中,dbusername 列是连接数据库的用户,username 列是尝试登录的用户名,terminal 列是登录终端的 IP 地址,extended_timestamp 列是登录尝试时间。
通过这个方式,你就可以查到哪个 IP 地址导致了用户被锁定。
oracle 中查询被锁用户原因
在Oracle中查询被锁定用户的原因,可以使用以下步骤:
1. 首先,使用系统特权用户(如SYS或SYSTEM)登录到Oracle数据库。
2. 运行以下SQL查询语句,以查看当前被锁定的用户及其锁定状态:
```
SELECT
s.username,
s.osuser,
l.lock_type,
l.mode_held,
l.mode_requested,
l.lock_id1,
l.lock_id2
FROM
v$locked_object l,
dba_objects o,
v$session s
WHERE
l.object_id = o.object_id
AND l.session_id = s.sid;
```
3. 根据查询结果中的信息,可以确定被锁定的用户、锁定的类型、持有的模式以及请求的模式等详细信息。
4. 如果需要解除被锁定用户的锁定状态,可以使用以下SQL语句:
```
ALTER SYSTEM KILL SESSION '{sid},{serial#}' IMMEDIATE;
```
其中,{sid}和{serial#}是查询结果中相应的会话ID和序列号。这条语句将立即终止该会话并释放所有由该会话持有的锁定。