---通常我们安装oracle数据库是建立oracle用户。并且用户加入dba组
--但是我们要改了oracle的dba组为dba1 ,数据库使用操作系统认证还能
--正常登录吗?
--回答是不行的。需要重新编译下我们的oracle可执行文件
--下面是我的操作步骤。
1:查看oracle 用户的具体情况,主组为dba
[root@repositorydb gc-1024]# id oracle
uid=500(oracle) gid=501(oinstall) groups=501(oinstall),500(dba)
2:可以看到现在使用操作系统验证登录。是没问题的2:可以看到现在使用操作系统验证登录。是没问题的
[oracle@repositorydb ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 9月 27 15:28:39 2012
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> exit
Disconnected
3:修改 oracle 配置文件为dba1.这里目地是让大家知道我讲改变成了dba1组3:修改 oracle 配置文件为dba1.这里目地是让大家知道我改变成了dba1组,这里根本不起作用。只是标识一下。我们看到了是注释
[oracle@repositorydb lib]$ vi $ORACLE_HOME/rdbms/lib/config.c
/* SS_DBA_GRP defines the UNIX group ID for sqldba adminstrative access. */
/* Refer to the Installation and User's Guide for further information. */
#define SS_DBA_GRP "dba1"
#define SS_OPER_GRP "dba"
4:编译oracle 可执行文件
oracle@repositorydb lib]$ make -f ins_rdbms.mk config.o
/usr/bin/gcc -O2 -I/u01/oracle/db_1/rdbms/demo -I/u01/oracle/db_1/rdbms/public -I/u01/oracle/db_1/plsql/public -I/u01/oracle/db_1/network/public -DLINUX -D_GNU_SOURCE -D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -DSLTS_ENABLE -DSLMXMX_ENABLE -D_REENTRANT -DNS_THREADS -c -o config.o config.c
[oracle@repositorydb lib]$ make -f ins_rdbms.mk ioracle
chmod 755 /u01/oracle/db_1/bin
- Linking Oracle
rm -f /u01/oracle/db_1/rdbms/lib/oracle
gcc -o /u01/oracle/db_1/rdbms/lib/oracle -L/u01/oracle/db_1/rdbms/lib/ -L/u01/oracle/db_1/lib/ -L/u01/oracle/db_1/lib/stubs/ -L/usr/lib -lirc -Wl,-E `test -f /u01/oracle/db_1/rdbms/lib/sskgpsmti.o && echo /u01/oracle/db_1/rdbms/lib/sskgpsmti.o` /u01/oracle/db_1/rdbms/lib/opimai.o /u01/oracle/db_1/rdbms/lib/ssoraed.o /u01/oracle/db_1/rdbms/lib/ttcsoi.o /u01/oracle/db_1/rdbms/lib/defopt.o -Wl,--whole-archive -lperfsrv10 -Wl,--no-whole-archive /u01/oracle/db_1/lib/nautab.o /u01/oracle/db_1/lib/naeet.o /u01/oracle/db_1/lib/naect.o /u01/oracle/db_1/lib/naedhs.o /u01/oracle/db_1/rdbms/lib/config.o -lserver10 -lodm10 -lnnet10 -lskgxp10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lhasgen10 -lcore10 -lskgxn2 -locr10 -locrb10 -locrutl10 -lhasgen10 -lcore10 -lskgxn2 -lclient10 -lvsn10 -lcommon10 -lgeneric10 -lknlopt `if /usr/bin/ar tv /u01/oracle/db_1/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap10" ; fi` -lslax10 -lpls10 -lplp10 -lserver10 -lclient10 -lvsn10 -lcommon10 -lgeneric10 `if [ -f /u01/oracle/db_1/lib/libavserver10.a ] ; then echo "-lavserver10" ; else echo "-lavstub10"; fi` `if [ -f /u01/oracle/db_1/lib/libavclient10.a ] ; then echo "-lavclient10" ; fi` -lknlopt -lslax10 -lpls10 -lplp10 -ljox10 -lserver10 -lclsra10 -ldbcfg10 -locijdbcst10 -lwwg `cat /u01/oracle/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /u01/oracle/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /u01/oracle/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /u01/oracle/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `if /usr/bin/ar tv /u01/oracle/db_1/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo10"; fi` -lctxc10 -lctx10 -lzx10 -lgx10 -lctx10 -lzx10 -lgx10 -lordimt10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lsnls10 -lunls10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -laio `cat /u01/oracle/db_1/lib/sysliblist` -Wl,-rpath,/u01/oracle/db_1/lib -lm `cat /u01/oracle/db_1/lib/sysliblist` -ldl -lm -L/u01/oracle/db_1/lib
/u01/oracle/db_1/lib//libcore10.a(lcd.o): In function `lcdprm':
lcd.c:(.text+0x8e8): warning: the `gets' function is dangerous and should not be used.
mv -f /u01/oracle/db_1/bin/oracle /u01/oracle/db_1/bin/oracleO
mv /u01/oracle/db_1/rdbms/lib/oracle /u01/oracle/db_1/bin/oracle
chmod 6751 /u01/oracle/db_1/bin/oracle
5:在登录,发现已经登录不5:在登录,发现已经登录不了了。
[oracle@repositorydb lib]$ sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 9月 27 15:30:50 2012
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denie
6:修改oracle 用户主组为dba1,正常登录
[root@repositorydb gc-1024]# usermod -G dba1 oracle
[root@repositorydb gc-1024]# id oracle
uid=500(oracle) gid=501(oinstall) groups=501(oinstall),502(dba1)
[root@repositorydb gc-1024]# su - oracle
[oracle@repositorydb ~]$
[oracle@repositorydb ~]$
[oracle@repositorydb ~]$
[oracle@repositorydb ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on 星期四 9月 27 15:35:52 2012
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn /as sysdba
Connected to an idle instance.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30182853/viewspace-1482732/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30182853/viewspace-1482732/