cowbane 发表于 2013-1-15 02:49:41

基于Windows平台的OS认证

OS验证指的是Oracle数据库不再自行检查请求用户的合法性,而是将此过程委托给用户所在的操作系统,由操作系统代理完成用户合法性的检查工作。对于采用此种认证机制的用户在连接数据库时无需输入用户名和密码即可登录。
        Windows平台下的用户OS认证配置基本上分成两大类型:
一、配置以sysdba角色登陆的用户
确保SQLNET.AUTHENTICATION_SERVICES=(NTS)
附加:此参数位于$ORACLE_HOME/network/admin下的sqlnet.ora文件中,若允许远程用户以OS认
证形式登录数据库(即由远程用户所使用的操作系统负责验证),则须将SPFILE<目标数据库名>.ORA参数文件中的remote_os_authent参数值改为TRUE,可如下修改此参数值:alter system set remote_os_authent=TRUE scope=spfile;若不允许则修改remote_os_authent=false即可
以系统管理员身份登录系统后创建一个组,组名为:ORA_DBA,然后再创建一个用户,最后将此用户添加进此组中
注销后以ORACLE_SID组中的任意一用户登录操作系统
附加:对于系统管理员与步系统已为我们实现,对于非管理员身份的用户才需自己实现
发送连接请求,如:SQL>conn / as sysdba;即可成功连接上目标数据库
附加:目标数据库由注册表中的ORACLE_SID(HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEO)值指定,并且此种连接都是以sys用户登录数据库的,所以对此种配置一定要慎重
 
二、配置以普通角色登陆的用户
确保SQLNET.AUTHENTICATION_SERVICES=(NTS)
附加:注意事项同上
查看注册表中参数OSAUTH_PREFIX_DOMAIN和数据库中属性os_authent_prefix值
查看OSAUTH_PREFIX_DOMAIN参数:HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEO
查看OS_AUTHENT_PREFIX参数命令:SQL>SHOW PARAMETER OS;(以sysdba角色登陆数据库查看)
SQL> show parameter os;
NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj             integer     100
os_authent_prefix                    string
os_roles                             boolean     FALSE
remote_os_authent                    boolean     TRUE
remote_os_roles                      boolean     FALSE
timed_os_statistics                  integer     0
创建数据库用户
SQL>CREATE USER 用户名 IDENTIFIED EXTERNALLY;
用名取名规则:[<OPS$>][<DOMAIN_NAME>\]<USER_NAME>
<DOMAIN_NAME>仅当OSAUTH_PREFIX_DOMAIN(默认为TRUE)为TRUE时才需要,其值一般为计算机名
<OPS$>通过OS_AUTHENT_PREFIX参数指定
如:SQL>CREATE USER “82BDAAAECC81499\DORA” IDENTIFIED EXTERNALLY;(注意用户名大写)
创建一个与数据库同名的操作系统用户(即用户名等同于<USER_NAME>值)
注销后以新创建的用户登录,然后C:\Documents and Settings\dora.82BDAAAECC81499>sqlplus / 后即可顺利连接上由ORACLE_SID指定的数据库

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cowbane/archive/2008/02/18/2103562.aspx
页: [1]
查看完整版本: 基于Windows平台的OS认证