Windows ORACLE 外部认证
SYS用户的外部认证
ORACLE外部认证,也叫操作系统认证,是指我们在以某个用户名登录ORACLE数据库时,只要进入了操作系统,就可以免密码直接登录ORACLE数据库,如下:
我们在Windows(这里是WIN7)上安装ORACLE时,系统会自动为我们建立ora_dba组,并自动把当前安装ORACLE软件的用户加入到ora_dba组中,从而我们在进入系统后,登录数据库时可以sqlplus / as sysdba这样登录,而不需要密码。如下:
首先查看安装ORACLE软件的win7系统用户名:
可以看到,用户名为Bill
在WIN7桌面上右击 计算机,点击管理,然后出现如下界面:
可以看到有一个ora_dba组,这是我们在安装ORACLE软件时系统自动创建的
右击ora_dba组,点击属性,出现如下界面:
可以看到Bill用户已被加入了ora_dba组。
所以,操作系统的其它用户也可以sqlplus / as sysdba这样以SYS用户登录到数据库,只是要把这个系统用户加入ORA_DBA组,下面来做一下:
1.首先在WIN7上创建了一个TJP用户,创建方法非常简单,此处略。
2.加入ORA_DBA组
在桌面上右击 "计算机"->管理,如下图所示:
把用户TJP加入到ORA_DBA组以后把WIN7系统切换到TJP用户,然后在CMD窗口登录:
这样,我们就实现了WIN7操作系统的其他用户的免密码登录了。
其他用户只要拥有SYSDBA权限,并以此权限登录,则登录用户显示全为SYS,下面是在远程操作:
C:\Users\User02>sqlplus sys/oracle@prod as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 2月 22 18:06:37 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show user;
USER 为 "SYS"
SQL> create user admin identified by admin;
用户已创建。
SQL> grant sysdba to admin;
授权成功。
SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
C:\Users\User02>sqlplus admin/admin@prod as sysdba;
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 2月 22 18:07:44 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show user;
USER 为 "SYS"
SQL>
SYSDBA这个权限很特殊,只有SYS用户才有这个权限(其他用户当然也可以有这个权限,但登录后显示的还是SYS用户),SYS 用户在登录的时候后面必须指名以 SYSDBA这个权限登录,所以在登录时必须加上AS SYSDBA。所以sqlplus / as sysdba这样登录的用户就是指SYS。其他有SYSDBA权限的用户登录时,必须sqlplus 用户名/密码@服务名 as sysdba这样登录,但显示的还是SYS用户。所以只要有SYSDBA权限的用户以SYSDBA权限登录了,可以说都转变为了SYS用户。
那么普通用户可不可以sqlplus / 这样登录呢,因为普通用户没有SYSDBA权限,所以后面也当然不能加AS SYSDBA这样登录了。
下面来实现普通用户的操作系统认证
数据库里有很多的普通用户,普通用户要实现sqlplus / 这样登录,那登录到底是登录哪个普通用户呢?所以我们必须在数据库里设置sqlplus / 这样登录的是哪个普通用户:
1.首先要在数据库里建立一个普通用户
这个普通用户的建立还得符合一定的要求,必须以下面这个参数的值(OPS$)开头
SQL> show parameter os_authent_prefix
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
os_authent_prefix string OPS$
SQL>
除此之外,后面还得加上计算名(我的计算机名为BILL-PC),最后再加上\,再加上用户名(此处也叫TJP),所以最后的用户名为OPS$BILL-PC\TJP
2.在注册表里面添加一环境变量
cmd->regedit
在右边添加一参数AUTH_PREFIX_DOMAIN 值设置为FALSE
然后登录:
这样就实现了一个普通用户的操作系统认证。
读者若有不明白的地方请给我留言。