oracle常见问题处理集锦
- oracle常见问题处理集锦
- ORA-03001:未实施的功能
- ORA:28000 the count is locked
oracle常见问题处理集锦
ORA-03001:未实施的功能
- 问题
ORA-03001:未实施的功能
在datagrip中修改表名称,使用的语法是:
rename old_name to new_name
-
原因
表示尝试执行的操作在当前上下文中不被支持或未被正确实现。 -
解决方案
出现该报错,基本可以断定是因为sql写错了。
ALTER TABLE old_name RENAME TO new_name;
ORA:28000 the count is locked
- 问题
ORA-28000: 账户已被锁定
- 原因
- 多次密码输错(触发密码策略中的失败登录次数限制)
- 管理员手动锁定了账户
- 密码过期但没有及时更新
- 长期未使用该用户账户(也可能被策略自动锁定)
- 解决方案
你需要用 具有DBA权限的账户 登录数据库,然后执行以下语句来解锁账户:
# 查看用户状态
SELECT username, account_status FROM dba_users WHERE username = 'HR';# 解锁账号
ALTER USER 用户名 ACCOUNT UNLOCK;# 重置密码并解锁
ALTER USER 用户名 IDENTIFIED BY 新密码 ACCOUNT UNLOCK;# demo
ALTER USER HR IDENTIFIED BY NewPass123 ACCOUNT UNLOCK;
同时查询登录失败策略
# 查询失败登录次数限制策略
SELECT * FROM dba_profiles WHERE resource_name = 'FAILED_LOGIN_ATTEMPTS';# 临时设置为“无限制”以避免再次锁定:
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;# 找出谁在尝试用错误密码登录(部分系统可能需要启用审计功能)
# Returncode = 1017 表示用户名或密码错误
SELECT username, userhost, terminal, timestamp
FROM dba_audit_session
WHERE returncode = 1017
ORDER BY timestamp DESC;
若未开启审计功能
# 查看当前审计模式:
SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Audit Options';# 查看是否启用了统一审计(Unified Auditing)
SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';# 启用数据库级别的审计功能(如果尚未启用)
ALTER SYSTEM SET audit_trail = DB SCOPE = SPFILE;
#'NONE':不记录审计信息
#'OS':将审计记录写入操作系统日志
#'DB, EXTENDED':记录 SQL 语句文本和绑定变量# 重启数据库
SHUTDOWN IMMEDIATE;
STARTUP;# 启用你想要的审计项目(例如登录失败)
# 审计所有登录尝试(成功和失败)
AUDIT SESSION;# 只审计失败的登录:
AUDIT SESSION WHENEVER NOT SUCCESSFUL;# 审计某个表上的操作:
AUDIT SELECT, INSERT, UPDATE, DELETE ON scott.emp BY ACCESS;# 查看审计日志(如果你使用的是 AUDIT_TRAIL=DB,可以通过以下视图查询审计记录)
# 登录相关信息:
SELECT username, userhost, returncode, timestamp
FROM dba_audit_session
ORDER BY timestamp DESC;# 表操作相关信息:
SELECT * FROM dba_audit_trail
ORDER BY timestamp DESC;# 关闭或清理审计(可选)
# 关闭审计:
NOAUDIT ALL;# 清理历史审计记录(注意备份):
DELETE FROM dba_audit_trail;
COMMIT;