ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle 10g数据库在windows下实现操作系统验证

Oracle 10g数据库在windows下实现操作系统验证

原创 Linux操作系统 作者:zblchina 时间:2011-08-09 09:51:14 0 删除 编辑
申明:

 本测试参照了yangtingkun(杨廷琨)大师及ZALBB的文章。他们可是在2005年就在讨这个问题了,那时哥还在搞集成呢,差距真的不是一点点呀!

    yangtingkun

    http://blog.itpub.net/post/468/4223

    ZALBB

    http://www.itpub.net/showthread.php?s=&threadid=162971

    我们知道,在oracle中有一个初始化参数os_authent_prefix,数据库中的外部用户名应该是OS_AUTHENT_PREFIX的值||操作系统的用户名。如果os_authent_prefix的值是'A',而操作系统用户名为B,则数据库中的外部验证用户名应该是'AB'。在Orale 10g中为了保持向后兼容,这个初始化参数值设为OPS$,当然在Oracle 10g中这个值可以设置为空。如果这个参数设为空时,数据库中的外部用户名与操作系统的用户名保持一致。

    而windows下的注册表中包括一个OSAUTH_PREFIX_DOMAIN项。这个项在默认情况下没有明确列出,但是这项的默认值是TRUE。也就是说在注册表HKEY_LOCAL_MACHINE>SOFTWARE>ORACLE>KEY_OraDb10g_home目录下如果没有OSAUTH_PREFIX_DOMAIN这项,说明OSAUTH_PREFIX_DOMAINTRUE,这时进行操作系统验证需要在用户名和os_authent_prefix之间增加'主机名\'信息。当明确设置这项为false时,则规则和UNIX系统中的操作系统验证一致。OSAUTH_PREFIX_DOMAIN项设置的位置见下面3张图:





1       本地操作系统认证测试的基本环境:

操作系统:WINDOWS 7 32

机器名:zangblpc

Oracle版本:oracle 10.2.0.3

SQLNET.ORA文件配置(windows7)SQLNET.AUTHENTICATION_SERVICES= (NTS)

数据库中REMOTE_OS_AUTHENT参数值为:false

用于测试的操作系统用户名:zbl

1.1     测试一

OSAUTH_PREFIX_DOMAIN变量为默认值TRUEOS_AUTHENT_PREFIX参数为默认值OPS$(当然OS_AUTHENT_PREFIX也可改成任意你想用的参数值,如:REM$)。测试过程如下

C:\Users\Administrator>sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 8 8 22:57:55 2011

 

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

 

 

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> set line 120

SQL> show parameter os_authent_prefix

 

NAME                 TYPE          VALUE

------------------------------------ ---------------------- -----------------

os_authent_prefix        string         OPS$

SQL>

 

SQL> create user "OPS$ZANGBLPC\ZBL" identified externally;

 

用户已创建。

 

SQL> grant connect to "OPS$ZANGBLPC\ZBL";

 

授权成功。

 

SQL>

 

注意这里创建OPS$ZANGBLPC\ZBL用户时必须用双引号引起来,否则会报ORA-00911: 无效字符的错误,这是因为这个里有特殊字符\,报错信息如下:

SQL> create user OPS$ZANGBLPC\ZBL identified externally;

create user OPS$ZANGBLPC\ZBL identified externally

                        *

1 行出现错误:

ORA-00911: 无效字符

 

 

SQL>

 

这个时候在操作系统中切换登录到zbl用户下,运行sqlplus /sqlplus /nologconnect /

 

C:\Users\ZBL>sqlplus /

 

SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 8 8 23:18:42 2011

 

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

 

 

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> show user

USER "OPS$ZANGBLPC\ZBL"

SQL>

1.2     测试二

OSAUTH_PREFIX_DOMAIN变量为默认值TRUEOS_AUTHENT_PREFIX参数为空值:

 

SQL> alter system set os_authent_prefix='' scope=spfile;

 

系统已更改。

 

 

SQL> startup force;

ORACLE 例程已经启动。

 

Total System Global Area  176160768 bytes

Fixed Size                  1289532 bytes

Variable Size              92275396 bytes

Database Buffers           75497472 bytes

Redo Buffers                7098368 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameter os_authent_prefix

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

os_authent_prefix                    string

 

SQL> drop user "OPS$ZANGBLPC\ZBL" cascade;

 

用户已删除。

 

SQL> set wrap off

SQL>  select username from dba_users where account_status='OPEN';

 

USERNAME

------------------------------------------------------------

SYSTEM

SYS

ZBLTEST1

MGMT_VIEW

PWD_MGR

SYSMAN

ZBLTEST

DBSNMP

ASSET_MGR

ZBLCHINA

ZANGBLPCZBL

 

USERNAME

------------------------------------------------------------

ZJJCK

ZJGLK

ADMINISTRATOR

 

已选择14行。

 

SQL> create user "ZANGBLPC\ZBL" identified externally;

 

用户已创建。

 

SQL> grant connect to "ZANGBLPC\ZBL";

 

授权成功。

 

SQL>

 

这个时候在操作系统中切换登录到zbl用户下,运行sqlplus /sqlplus /nologconnect /

 

Microsoft Windows [版本 6.1.7601]

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

 

C:\Users\ZBL>sqlplus /

 

SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 8 8 23:35:21 2011

 

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

 

 

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> show user

USER "ZANGBLPC\ZBL"

SQL>

 

1.3     测试三

OSAUTH_PREFIX_DOMAIN变量为默认值FALSEOS_AUTHENT_PREFIX参数为默认值OPS$(当然OS_AUTHENT_PREFIX也可改成任意你想用的参数值,如:REM$):

 

SQL> show parameter os_authent_prefix

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

os_authent_prefix                    string

SQL> alter system set os_authent_prefix='OPS$' scope=spfile;

 

系统已更改。

 

SQL> startup force

ORACLE 例程已经启动。

 

Total System Global Area  176160768 bytes

Fixed Size                  1289532 bytes

Variable Size              96469700 bytes

Database Buffers           71303168 bytes

Redo Buffers                7098368 bytes

数据库装载完毕。

数据库已经打开。

SQL> show parameter os_authent_prefix

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

os_authent_prefix                    string                 OPS$

SQL> drop user "ZANGBLPC\ZBL" CASCADE;

 

用户已删除。

 

SQL> select username from dba_users where account_status='OPEN';

 

USERNAME

------------------------------------------------------------

SYSTEM

SYS

ZBLTEST1

MGMT_VIEW

PWD_MGR

SYSMAN

ZBLTEST

DBSNMP

ASSET_MGR

ZBLCHINA

ZANGBLPCZBL

 

USERNAME

------------------------------------------------------------

ZJJCK

ZJGLK

ADMINISTRATOR

 

已选择14行。

 

SQL> create user ops$zbl identified externally;

 

用户已创建。

 

SQL> grant connect to ops$zbl;

 

授权成功。

 

SQL>

 

 

这个时候在操作系统中切换登录到zbl用户下,运行sqlplus /sqlplus /nologconnect /

 

Microsoft Windows [版本 6.1.7601]

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

 

C:\Users\ZBL>sqlplus /

 

SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 8 8 23:53:07 2011

 

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

 

 

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> show user

USER "OPS$ZBL"

SQL>

 

1.4     测试四

OSAUTH_PREFIX_DOMAIN变量为默认值FALSEOS_AUTHENT_PREFIX参数为空值:

 

SQL> show parameter os_authent_prefix

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

os_authent_prefix                    string                 OPS$

SQL> alter system set os_authent_prefix='' scope=spfile;

 

系统已更改。

 

SQL> startup force

ORACLE 例程已经启动。

 

Total System Global Area  176160768 bytes

Fixed Size                  1289532 bytes

Variable Size             100664004 bytes

Database Buffers           67108864 bytes

Redo Buffers                7098368 bytes

数据库装载完毕。

数据库已经打开。

SQL> drop user ops$zbl cascade;

 

用户已删除。

 

 

SQL> select username from dba_users where account_status='OPEN';

 

USERNAME

------------------------------------------------------------

SYSTEM

SYS

PWD_MGR

ZBLTEST1

SYSMAN

DBSNMP

MGMT_VIEW

ASSET_MGR

ZBLCHINA

ZJJCK

ZJGLK

 

已选择11行。

 

SQL> show parameter os_authent_prefix

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

os_authent_prefix                    string

SQL> create user zbl identified externally;

 

用户已创建。

 

SQL> grant connect to zbl;

 

授权成功。

 

SQL>

 

这个时候在操作系统中切换登录到zbl用户下,运行sqlplus /sqlplus /nologconnect /

 

Microsoft Windows [版本 6.1.7601]

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

 

C:\Users\ZBL>sqlplus /

 

SQL*Plus: Release 10.2.0.3.0 - Production on 星期二 8 9 00:03:27 2011

 

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

 

 

连接到:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> show user

USER "ZBL"

SQL>

 

 

2       远程操作系统认证测试的基本环境

数据库所在的主机的操作系统:WINDOWS 7 32

客户端所在主机的操作系统:Oracle Enterpris Linux 5.5 x86-64

数据库主机机器名:zangblpc

Oracle数据库版本:Oracle 10.2.0.3

Oracel Client数据库版本:Oracle 10.2.0.5

SQLNET.ORA文件配置(数据库端)SQLNET.AUTHENTICATION_SERVICES= (NTS)

数据库中REMOTE_OS_AUTHENT参数值为:true

用于测试的操作系统用户名:zbl

数据库的监听地址为172.19.3.24,端口为1521

2.1     测试一

OSAUTH_PREFIX_DOMAIN变量为默认值FALSEOS_AUTHENT_PREFIX参数为空值:

 

SQL> show parameter os_authent_prefix

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

os_authent_prefix                    string                 OPS$

SQL> alter system set os_authent_prefix='' scope=spfile;

 

系统已更改。

 

SQL> startup force

ORACLE 例程已经启动。

 

Total System Global Area  176160768 bytes

Fixed Size                  1289532 bytes

Variable Size             100664004 bytes

Database Buffers           67108864 bytes

Redo Buffers                7098368 bytes

数据库装载完毕。

数据库已经打开。

SQL> drop user ops$zbl cascade;

 

用户已删除。

 

 

SQL> select username from dba_users where account_status='OPEN';

 

USERNAME

------------------------------------------------------------

SYSTEM

SYS

PWD_MGR

ZBLTEST1

SYSMAN

DBSNMP

MGMT_VIEW

ASSET_MGR

ZBLCHINA

ZJJCK

ZJGLK

 

已选择11行。

 

SQL> show parameter os_authent_prefix

 

NAME                                 TYPE                   VALUE

------------------------------------ ---------------------- ------------------------------

os_authent_prefix                    string

SQL> create user zbl identified externally;

 

用户已创建。

 

SQL> grant connect to zbl;

 

授权成功。

 

SQL>

Oracle Client机器上创建zbl用户:

[root@amdocs43 ~]# useradd -g dba -G oinstall zbl

[root@amdocs43 ~]# passwd zbl

Changing password for user zbl.

New UNIX password:

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@amdocs43 ~]# ping 172.19.3.24

PING 172.19.3.24 (172.19.3.24) 56(84) bytes of data.

64 bytes from 172.19.3.24: icmp_seq=1 ttl=128 time=0.220 ms

64 bytes from 172.19.3.24: icmp_seq=2 ttl=128 time=0.206 ms

64 bytes from 172.19.3.24: icmp_seq=3 ttl=128 time=0.290 ms

64 bytes from 172.19.3.24: icmp_seq=4 ttl=128 time=0.188 ms

 

--- 172.19.3.24 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3001ms

rtt min/avg/max/mdev = 0.188/0.226/0.290/0.038 ms

[root@amdocs43 ~]#

 

这个时候在Linux主机中以zbl用户登录(当然这台机机需要已经安装了Oracle Client),在客户机的$ORACLE_HOME/network/admin/tnsnames.ora文件里添加如下内容:

MYDB =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.3.24)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = mydb)

    )

  )

 

[zbl@amdocs43 ~]$ tnsping mydb

 

TNS Ping Utility for Linux: Version 10.2.0.5.0 - Production on 09-AUG-2011 10:22:26

 

Copyright (c) 1997,  2010, Oracle.  All rights reserved.

 

Used parameter files:

/oracle/product/10.2/db/network/admin/sqlnet.ora

 

 

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.3.24)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = mydb)))

OK (10 msec)

[zbl@amdocs43 ~]$

运行sqlplus /@mydbsqlplus /nologconnect /@mydb

 

[zbl@amdocs43 ~]$ whoami

zbl

[zbl@amdocs43 ~]$ sqlplus /@mydb

 

SQL*Plus: Release 10.2.0.5.0 - Production on Tue Aug 9 10:36:36 2011

 

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> show user

USER is "ZBL"

SQL> quit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production

With the Partitioning, OLAP and Data Mining options

[zbl@amdocs43 ~]$ sqlplus /nolog

 

SQL*Plus: Release 10.2.0.5.0 - Production on Tue Aug 9 11:02:22 2011

 

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

 

SQL> connect /@mydb

Connected.

SQL> show user

USER is "ZBL"

SQL>

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/63845/viewspace-704472/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2011-08-09

  • 博文量
    1
  • 访问量
    1308