非Oracle用户使用操作系统验证登陆(/ as sysdba)

非Oracle用户使用操作系统验证登陆(/ as sysdba)

分类: 技术之我见 Oracle 技术转载 241人阅读 评论(0) 收藏 举报
Oracle sqlplus as sysdba

之前写过一篇blog《新用户使用sqlplus / as sysdba登录报错》http://blog.csdn.net/bisal/article/details/9285087

今天碰巧看到一篇推荐的帖子《新建一个用户(非oracle),在不赋予dba所属组的情况下,不能使用操作系统验证》

http://www.itpub.net/thread-1811278-1-1.html,也是按照实际操作的流程解释了处理的方法,很实际。


总结起来,使用非oracle用操作系统验证登录,需要做的

1、设置相关环境变量;

2、将用户添加到dba组中;

3、用户具有$ORACLE_HOME相关路径(尤其是bin)文件的执行权限。

但上次调试一个测试库,创建非Oracle安装用户时也试了如上方法,但未奏效,肯定哪里还有点问题,找个时间再看看了要。


转:

新建一个用户(非oracle),在不赋予dba所属组的情况下,不能使用操作系统验证

[grid@dbaup ~]$ id

uid=1002(grid)gid=1003(grid) 组=1003(grid)

[grid@dbaup ~]$export ORACLE_BASE=/u01/oracle

[grid@dbaup ~]$export ORACLE_HOME=$ORACLE_BASE/product/11.0.2.1

[grid@dbaup ~]$export ORACLE_SID=gbk11g

[grid@dbaup ~]$export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

[grid@dbaup ~]$export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

--linux默认SQLNET.AUTHENTICATION_SERVICES=beq ,操作系统和密码验证都能使用,我下边并没有设none

[grid@dbaup ~]$ cat/u01/oracle/product/11.0.2.1/network/admin/sqlnet.ora

# sqlnet.ora NetworkConfiguration File: /u01/oracle/product/11.0.2.1/network/admin/sqlnet.ora

# Generated byOracle configuration tools.

NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)

ADR_BASE =/u01/oracle

--操作系统认证报ORA-01031: insufficient privileges

[grid@dbaup ~]$sqlplus / as sysdba

SQL*Plus: Release11.2.0.1.0 Production on Tue Aug 20 21:39:04 2013

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

ERROR:

ORA-01031:insufficient privileges

Enter user-name:

新开一个窗口(窗口2),为grid用户添加dba附加组

[root@dbaup ~]# idgrid

uid=1002(grid)gid=1003(grid) 组=1003(grid),1001(dba)

在窗口1重新登录gird用户,查看grid用户已经有dba附加组了

[gird@dbaup ~]$ exit

logout

[root@dbaup bin]# su- grid

[grid@dbaup ~]$ id

uid=1002(grid)gid=1003(grid) 组=1003(grid),1001(dba)

--重新设置环境变量

[grid@dbaup ~]$export ORACLE_BASE=/u01/oracle

[grid@dbaup ~]$export ORACLE_HOME=$ORACLE_BASE/product/11.0.2.1

[grid@dbaup ~]$export ORACLE_SID=gbk11g

[grid@dbaup ~]$export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

[grid@dbaup ~]$export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

--登录操作系统验证成功

[grid@dbaup ~]$sqlplus / as sysdba

SQL*Plus: Release11.2.0.1.0 Production on Tue Aug 20 21:42:36 2013

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

Connected to:

Oracle Database 11gEnterprise Edition Release 11.2.0.1.0 - 64bit Production

With thePartitioning, OLAP, Data Mining and Real Application Testing options

SQL>

为什么会出现这种情况呢?

[root@dbaup ~]# find/ -group dba

/u01/oracle/product/11.0.2.1/dbaup_gbk11g/sysman/log

/u01/oracle/product/11.0.2.1/dbaup_ora11g/sysman/log

find:“/proc/20062/task/20062/fd/5”: 没有那个文件或目录

find:“/proc/20062/task/20062/fdinfo/5”: 没有那个文件或目录

find:“/proc/20062/fd/5”: 没有那个文件或目录

find:“/proc/20062/fdinfo/5”: 没有那个文件或目录

--发现/u01/oracle/product/11.0.2.1/dbaup_gbk11g/sysman/log所属组是dba,并且other没有任何权限

[root@dbaup ~]# ls-l /u01/oracle/product/11.0.2.1/dbaup_gbk11g/sysman/log

总用量 5604

-rw-r-----. 1 oracleoinstall       0  6月  322:19 emagentfetchlet.log

-rw-r-----. 1 oracleoinstall       0  6月  322:19 emagentfetchlet.trc

-rw-r-----. 1 oracleoinstall     956  7月 29 17:04 emagent.log

-rw-r-----. 1 oracleoinstall   39430  7月 29 17:10 emagent_perl.trc

-rw-r-----. 1 oracleoinstall  757974  7月 29 18:49 emagent.trc

-rw-r-----. 1 oracleoinstall   11794  7月 29 18:49 emdb.nohup

-rw-r-----. 1 oracleoinstall       0  6月  322:18 emdctl.log

-rw-r-----. 1 oracleoinstall    3441  7月 29 17:04 emdctl.trc

-rw-r-----. 1 oracleoinstall 2443250  7月 29 18:49 emoms.log

-rw-r-----. 1 oracleoinstall 2443250  7月 29 18:49 emoms.trc

-rw-r-----. 1 oracleoinstall       0  6月  322:21 nfsPatchPlug.log

drwxr-----. 2 oracleoinstall    4096  6月  322:20 pafLogs

-rw-r-----. 1 oracleoinstall       0  6月  322:19 patchAgtStPlugin.log

-rw-r-----. 1 oracleoinstall    5279  6月  322:19 secure.log

[root@dbaup ~]# ls-ld /u01/oracle/product/11.0.2.1/dbaup_gbk11g/sysman/log

drwxr-x---.3 oracle dba 4096  7月 29 17:04/u01/oracle/product/11.0.2.1/dbaup_gbk11g/sysman/log

结论:oracle之外的用户,在打开了操作系统验证的情况下,还需要加入dba组才能使用操作系统验证

你可能感兴趣的:(oracle,技术转载,技术之我见)