读书人

windows上实现操作系统认证

发布时间: 2012-09-13 09:51:53 作者: rapoo

windows下实现操作系统认证

最近自学Oracle,看到一个参数

os_authent_prefix 看一下官方解释

PropertyDescriptionStringOS_AUTHENT_PREFIX = OPS$No


OS_AUTHENT_PREFIX 为Oracle 使用给想要连接服务器的用户授权的前缀。 Oracle 会把这个参数的值加在操作系统用户的名字和密码前面。

When a connection request is attempted, Oracle compares the prefixed username with Oracle usernames in the database.

当一个连接试图建立,oracle会去比较加上前缀的操作系统用户名和数据库中的用户名是否一致。

The default value of this parameter is OPS$ for backward compatibility with previous versions. However, you might prefer to set the prefix value to "" (a null string), thereby eliminating the addition of any prefix to operating system account names.

该参数的默认值为OPS$,但是可以修改为“”,这样就可以使操作系统用户名和数据库用户名一致而不需要前缀。

下面看一下如何使用这个参数来完成操作系统验证:

(1)操作系统WINDOWS XP SP3

ORACLE VERSION:10.2.0.1

首先:在注册表【HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\Key_OraDb10g_home1】添加此字串值 OSAUTH_PREFIX_DOMAIN = FALSE(值)

(2)SQLNET.ORA中

设置:SQLNET.AUTHENTICATION_SERVICES= (NTS)

(3) 初始化参数os_authent_prefix 修改为""

SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 8月 19 22:22:10 2012Copyright (c) 1982, 2005, Oracle.  All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> show userUSER 为 "DYLAN"SQL> alter user dylan identified by dylan;alter user dylan identified by dylan*第 1 行出现错误:ORA-01031: 权限不足SQL> conn scott/tiger已连接。SQL> alter user scott identified by tiger;用户已更改。SQL> select * from session_privs;PRIVILEGE----------------------------------------CREATE SESSIONUNLIMITED TABLESPACECREATE TABLECREATE CLUSTERCREATE SEQUENCECREATE PROCEDURECREATE TRIGGERCREATE TYPECREATE OPERATORCREATE INDEXTYPE已选择10行。


说明:注册表参数 OSAUTH_PREFIX_DOMAIN = FALSE 是 WINDOWS环境下,能否使用
操作系统认证数据库登录的关键,默认情况下,为TRUE,这造成WIDNOWS环境
下无法使用操作系统认证数据库登录的原因!需要在注册表里加上此参数,
方可使用此方法!

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

made by dylan


读书人网 >操作系统

热点推荐