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

然后登录:

这样就实现了一个普通用户的操作系统认证。

读者若有不明白的地方请给我留言。

posted @ 2013-02-22 18:56  -Bill  阅读(666)  评论(0编辑  收藏  举报