在安装oracle时,oracle会提示输入sysdba用户组名,凡是以操作系统认证方式的连接,如果连接的用户在这个指定的用
户组中,就可以用sysdba用户登陆。一般情况下,也是建议的sysdba用户组为dba。有的时候,也存在这样一种情况,安装
oracle软件的时候,输入了错误的sysdba用户组名(主要是由于创建oracle用户时指定到了错误的其他用户组中,现实中
这种情况曾经出现过)。这样一来,就会导致不规范的安装,或者oracle后来修改回正确的用户组(dba),将导致oracle
用户不能以sysdba权限连接数据库,甚至不能启动数据库)。不规范的安装,如果将安装的oracle软件tar到其他机器,会
导致那个机器的oracle也出现oracle不能以sysdba连接的问题(有的人安装oracle时,如果有现成的,他就喜欢用tar的方
式)。如果指定了错误的sysdba用户组名,怎么样快捷修改而又不用重新安装oracle软件呢?既然在安装时可以指定,那
么一定会有一个地方,存储了这个配置,这个存储的文件就是$ORACLE_HOME/rdbms/lib/config.c。我们看看config.c这个
文件的内容:
[oracle@xty lib]$ cat 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 "dba"
#define SS_OPER_GRP "dba"
char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP};
从这个文件中,可以看到SYSDBA的用户组为"dba",而SYSOPER的用户组也为"dba"。如果我们把#define SS_DBA_GRP "dba"
这一行改为#define SS_DBA_GRP "dba",然后执行下面的命令:relink all,再用oracle用户连接数据库时:
[oracle@xty ~]$ sqlplus /nolog SQL*Plus: Release 10.2.0.3.0 - Production
阅读(1550) | 评论(0) | 转发(0) |