安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享

这篇具有很好参考价值的文章主要介绍了安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        欢迎关注“数据库运维之道”公众号,一起学习数据库技术! 本期将为大家分享“安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误”的处置案例。

        关键词:ORA-600[kokasgi1]、10046 trace、gdb

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

        根据数据库等保要求:应重命名或删除默认账户,修改默认账户的默认口令。 部分安全公司给出了建议:修改sys,system默认账户名称,避免使用常见用户名称。Oracle 11.2.0.2引入了隐含参数_enable_rename_user来开启用户rename功能,此功能可以在restrict模式下重命名普通用户,但无法用于SYS,SYSTEM用户。用户直接强行更新Oracle系统数据字典表USER$来重命名SYS,例如:update user$ set name='SYSIDC' where name='SYS'; 更新成功后,重启数据库会触发ORA-600 [kokasgi1]错误,数据库无法正常启动。

        客户反馈数据库无法启动,提供的错误信息如下图所示:

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [], [], [], [], [], []
Process ID: 4739
Session ID: 1369 Serial number: 3

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

        首先,遇到ORA-600错误,第一步先查看alert告警日志,以进一步分析报错信息。

SMON: enabling tx recovery
Database Characterset is ZHS16GBK
Errors in file /u01/app/oracle/diag/rdbms/ywzd/ywzd/trace/ywzd_ora_4739.trc  (incident=48167):
ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/ywzd/ywzd/incident/incdir_48167/ywzd_ora_4739_i48167.trc
ARC3: Archival started
ARC0: STARTING ARCH PROCESSES COMPLETE
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Errors in file /u01/app/oracle/diag/rdbms/ywzd/ywzd/trace/ywzd_ora_4739.trc:
ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [], [], [], [], [], []
Errors in file /u01/app/oracle/diag/rdbms/ywzd/ywzd/trace/ywzd_ora_4739.trc:
ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [], [], [], [], [], []
Error 600 happened during db open, shutting down database
USER (ospid: 4739): terminating the instance due to error 600
Instance terminated by USER, pid = 4739

        其次,查阅MOS相关文档。该错误在mos上没有查询出来明确的解决方案。于是,重启数据库并设置10046跟踪事件,让报错信息重现。

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter session set events='10046 trace name context forever , level 12'; 
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [kokasgi1], [], [], [], [], [], [], [], [], [], [], []
Process ID: 4739
Session ID: 1369 Serial number: 3

        接着,在10046 跟踪文件中可以看到启动过程中基础数据字典内容校验时出现了错误,导致数据库无法正常打开。SYS用户在Oracle程序中会被硬编码在逻辑中,强行更改会导致系统异常。

===================== 
select user#,password,datats#,tempts#,type#,defrole,resource$, ptime,decode(defschclass,NULL,'DEFAULT_CONSUMER_GROUP',defschclass),
spare1,spare4,ext_username,spare2 
from user$ where name=:1
END OF STMT
 Bind#0
  value="SYS"   <---绑定变量值

        最后,跟客户进行沟通确认,近期做过安全整改,确实有人修改了SYS用户名。于是排除是被人恶意攻击的情况。

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

        1、由于SYS用户名被强行更改,接下来需要通过gdb工具挂起启动过程,并强行修改数据字典进行修复,不影响数据库的健康运行。

        2、打开窗口1,将数据库启动至mount状态,关闭监听程序。

        3、打开窗口2 ,查看sqlplus的进程号,并用gdb工具进行调试

[oracle@YWZD-DBS ~]$ ps -ef|grep LOCAL
oracle    6961  6150  0 21:42 ?        00:00:00 oracleywzd (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
[oracle@YWZD-DBS ~]$ gdb /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/oracle 6961
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.212.el6_10.3.x86_64 libaio-0.3.107-10.el6.x86_64 numactl-2.0.9-2.el6.x86_64
(gdb) b kokiasg    《---- 设置断点
Breakpoint 1 at 0x15037cc
(gdb) c    《----
Continuing.

        4、此时回到窗口1

SQL> alter database open;

        此时系统挂住,通过alert日志可以看到数据库实际已经open了。

        5、新开一个窗口3,可以查到SYS用户名被改为SYSIDC。

[oracle@YWZD-DBS ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Jul 26 21:45:16 2022

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> select rowid ,name from user$ where name like 'SYS%';

ROWID           NAME
------------------ ------------------------------
AAAAAKAABAAAADRAAB SYSIDC
AAAAAKAABAAAADRAAG SYSTEM

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

        6、接着将用户名修改为SYS。

SQL> update user$ set name='SYS' where name='SYSIDC';

1 row updated.

SQL> commit;

Commit complete.

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

        7、回到窗口2,退出断点设置。

Breakpoint 1, 0x00000000015037cc in kokiasg ()
(gdb) quit
A debugging session is active.

    Inferior 1 [process 6961] will be detached.

Quit anyway? (y or n) y
Detaching from program: /u01/app/oracle/product/11.2.0.4/dbhome_1/bin/oracle, process 6961

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

        8、回到窗口1,重启数据库与监听,并验证业务是否正常。

        9、至此恢复完成。再次明确SYS用户是oracle内部默认的超级用户,系统很多调用在程序中写死的sys,对其用户不能进行重命名操作。

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

        gdb(GNU Debugger)是Linux系统中一个强大的调试工具,它用于分析程序的运行过程,帮助开发者识别和修复程序中的错误。当数据库已经非常慢或者数据库hang到sqlplus -prelim "/as sysdba"也无法连接时,就可以使用gdb来收集系统的dump信息。尽量不要去使用gdb去dump oracle数据库后台进程,有可能导致进程被kill(遇到过几次),如果系统没有hang死,也尽量不要在生产系统使用gdb做dump和调优。

        可以在测试环境使用gdb进行dump​实验,步骤如下:

1、找到Oracle用户进程ID
ps -ef | grep  orcl (LOCAL=NO)

2、对上述的SPID进程号进行调试跟踪

Example: process id 3846

$ gdb $ORACLE_HOME/bin/oracle 3846
3、打印trace信息

(gdb) print ksudss(258)  --》##258为dump的level

4、找到trace文件  
cd $ORACLE_BASE/diag/rdbms/ywzd/ywzd/trace   ##参数的trace文件路径 也就是alertlog的路径
ll|grep 3846
-rw-r----- 1 oracle oinstall 6723482 Feb 4 15:51 ywzd_ora_3846.trc   ##文件名为  oraclesid_ora_pid.trc
5、退出调试窗口
(gdb) detach   ##脱离进程
(gdb) quit

安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享,Oracle数据库,oracle

  1. https://sqlora.blog.csdn.net/article/details/106721292
  2. https://blog.csdn.net/xiaofan23z/article/details/136040441
  3. https://docs.oracle.com/cd/E27071_01/html/E26441/blazn.html

        以上就是本期关于“安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误”的处置案例。希望能给大家带来帮助。
        欢迎关注“数据库运维之道”公众号,一起学习数据库技术!文章来源地址https://www.toymoban.com/news/detail-848530.html

到了这里,关于安全等保加固重命名SYS用户触发ORA-600[kokasgi1]错误案例分享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网安等保 | 主机安全之CentOS8服务器配置优化与安全加固基线文档脚本分享

    欢迎关注「 全栈工程师修炼指南 」公众号 点击 👇  下方卡片  即可关注我哟! 设为 「 星标⭐ 」 每天带你  基础入门  到  进阶实践  再到  放弃学习 ! 专注  企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章  等知识分享 “    花开堪折直须折

    2024年02月04日
    浏览(90)
  • 等保三级安全加固,服务器三权分立设置,mysql密码策略登录策略

    1、安全计算环境 1)数据库、服务器未配置口令复杂度策略。 建议强制配置口令的复杂度策略(复杂度包含字母大小写,数字,特殊字符,密码长度八位以上),防止口令被轻易破解。 2)数据库、服务器未配置口令有效期策略。 建议配置数据库口令有效期策略,最短更改时间

    2024年02月08日
    浏览(70)
  • ORA-600 ksuloget2 恢复----惜分飞

    客户在win 32位的操作系统上调至sga超过2G,数据库运行过程中报ORA-600 ksuloget2错误 Thread 1 cannot allocate new log, sequence 43586 Checkpoint not complete    Current log # 1 seq# 43585 mem# 0: D:ORACLEORADATAORCLREDO01.LOG Fri Aug 04 14:57:02 2023 Errors in file d:oraclediagrdbmsorclorcltraceorcl_ora_42996.trc  (incident=

    2024年02月12日
    浏览(41)
  • Patch SCN一键解决ORA-600 2662故障---惜分飞

    客户强制重启库之后,数据库启动报ORA-600 2037,ORA-745 kcbs_reset_pool/kcbzre1等错误 Wed Aug 09 13:25:38 2023 alter database mount exclusive Successful mount of redo thread 1, with mount id 1672229586 Database mounted in Exclusive Mode Lost write protection disabled Completed: alter database mount exclusive alter database open Beginning crash

    2024年02月13日
    浏览(33)
  • 小程序安全性加固:如何保护用户数据和防止恶意攻击

    第一章:引言   在当今数字化时代,移动应用程序的使用已经成为人们日常生活中的重要组成部分。小程序作为一种轻量级的应用程序形式,受到了广泛的欢迎。然而,随着小程序的流行,安全性问题也日益凸显。用户数据泄露和恶意攻击威胁着用户的隐私和安全。本文将重

    2024年02月12日
    浏览(56)
  • oracle,CLOB转XML内存不足,ORA-27163: out of memory ORA-06512: at “SYS.XMLTYPE“,

    通过kettle采集数据时,表输入的组件,查询报错。 ORA-27163: out of memory ORA-06512: at “SYS.XMLTYPE”, line 272 ORA-06512: at line 1 通过 ALTER SESSION SET EVENTS ‘31156 trace name context forever, level 0x400’; 修改会话配置 或直接修改system配置 ALTER system SET EVENTS ‘31156 trace name context forever, level 0x400’

    2024年02月07日
    浏览(51)
  • sys用户在sys.user$中的一些特殊现象浅析

    在Oracle数据库中,一般我们使用sys.user或dba_users去监控/检查用户密码是否快过期,另外,它还能监控新用户的创建时间、账号密码过期、账号修改时间等,dba_user其实是一个系统视图,它的数据来源于sys.user$等基础表。dba_user的定义如下所示: 但是在sys.user$中,sys用户非常特

    2024年02月08日
    浏览(34)
  • 中国版Access上市,用户600万,告别VBA,Excel用户也能搭建软件

    微软的Access在数据库管理软件上一直是独具一格的存在,在世界范围内拥有数百万的用户。 但近日,一款全新的中国版Access开始崭露头角,它以更友好的操作界面、更强大的功能和更广泛的用户适配性吸引着众人的目光。 这款中国版Access已经拥有了超过600万的用户。 更值得

    2024年02月08日
    浏览(46)
  • 600万用户在用,中国版Access上市,Excel和WPS用户直呼:太棒了

    大家都知道微软的Access功能很强大,作为office里的一款数据库软件,不仅能帮助我们进行数据的分析和处理,而且再深入一点,还可以用VBA实现一些高级的用法。不仅国外有很多用户,就连中国的一部分WPS的用户也在用,他们在某些时候会非常羡慕Excel和access用户,因为WPS中

    2024年02月08日
    浏览(49)
  • 等保测评三级等保—安全设计思路

    1、 保护对象框架 保护对象是对信息系统从安全角度抽象后的描述方法,是信息系统内具有相似安全保护需求的一 组信息资产的组合。 依据信息系统的功能特性、安全价值以及面临威胁的相似性,信息系统保护对象可分为计算区域、 区域边界、网络基础设施、安全措施四类

    2024年04月23日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包