一、服务器上使用操作系统验证
1.配置SQLNET.ORA文件
参数NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
表明解析客户端连接时所用的主机字符串的方式
TNSNAMES:表示采用TNSNAMES.ORA文件来解析
ONAMES:表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES
HOSTNAME:表示使用host文件,DNS,NIS等来解析
参数SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)
表明用户连接Oracle服务器时使用哪种验证方式
NONE表示Oracle数据库身份验证,
NTS表示操作系统身份验证,
两个参数都存在时,表示两种方式可以并用
2.建立相应的操作系统组及用户加入该组
ORA_DBA组中的域用户和本地用户不需要Oracle用户名和密码就可以登录Oracle
而且该组的用户登录数据库后都具有SYSDBA权限
(多个实例时,可以建立类似这样的组ORA_SID_DBA,其中SID指实例名)
同理:ORA_OPER组中的成员具有SYSOPER角色的权限。
3.登录方式
C:\>sqlplus “/ as sysdba”
或者C:\>sqlplus nolog,然后SQL>connect / as sysdba
4.init.ora中的Remote_Login_Passwordfile对身份验证的影响
三个可选值:
NONE:默认值,指示Oracle系统不使用密码文件,通过操作系统进行身份验证的特权用户拥有SYSORA和SYSOPER权限
EXCLUSIVE:
1.表示只有一个数据库实例可以使用密码文件
2.允许将SYSORA和SYSOPER权限赋值给SYS以外的其它用户
SHARED:
1.表示可以有多个数据库实例可以使用密码文件
2.不允许将SYSORA和SYSOPER权限赋值给SYS以外的其它用户
所以,如果要以操作系统身份登录,Remote_Login_Passwordfile应该设置为NONE
5.当登录用户不是ORA_DBA组和ORA_OPER组成员时,登录数据库
需要在Oracle中创建当前操作系统用户相同的用户名,如果当前用户是域用户,则名称为:domainname\yourname,
如果是本地计算机用户,则名称为:computername\yourname
创建方法:
create "domainname\yourname" identified externally;
grant connect to "domainname\yourname";
Windows操作系统,修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0下面添加OSAUTH_PREFIX_DOMAIN,值设为FALSE,在创建Oracle用户时可以忽略掉域名
这种方式下,init.ora中有一个参数将影响数据库如何匹配一个windows用户和Oracle用户
os_authent_prefix = ""
缺省为空,Oracle8i以前,无该参数,而使用OPS$作为用户名前缀.(Oracle用户名最大长度限制为30个字符)
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
二、远程客户端使用操作系统验证
首先需要在init.ora文件中设置如下参数:
REMOTE_OS_AUTHENT=TRUE
Oracle不推荐在远程客户端上使用操作系统验证,因为客户端验证时不是通过服务器上的操作系统用户来验证,而是使用客户端自己怕操作系统来进行windows验证,这样,客户端可以采用建立对应的windows机器名和用户名的方式来欺骗Oracle的操作系统验证.
例如:
创建了如下Oracle用户
create "zl\zyk" identified externally;
grant connect to "zl\zyk";
如果有一台名为ZL的机器,创建了一个名为zyk的用户,并以此登录连接Oracle服务器(连接时使用\@OracleSTR),无需用户名和密码
造成此问题的原因是,Oracle使用客户端操作系统进行验证,它无法区别zl是域名还是机器名.
Windows &.net杂志2004第7期(http://www.winnetmag.com/Windows/Articles/ArticleID/42280/pg/1/1.html)
作者在文章中强调(第三页最后一段):
Oracle数据库服务器上的windows身份认证很容易实施,并且使已登录的用户访问数据库很方便
但是,这种验证模型并不适合远程客户端,因为安全隐患太大。
--------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
三、Oracle 9i对操作系统身份认证支持的增强
Oracle 9i可以与活动目录集成,通过Oracle Enterprise Security Manager 管理用户权限
Enterprise user authentication做为一种新的外部集中认证模式
(也叫 global user authentication,Oracle 9i以前的External user authentication仅仅采用了客户端操作系统本地认证)
Oracle9i运行在一个win2000及以上的域中,注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEID,参数OSAUTH_X509_NAME设置为true
(默认为false,如果该参数不存在,则新增为REG_EXPAND_SZ类型)
注意:Windows NT 4.0 domain 不支持这种方式
参考:
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/win.920/a95492/enterpri.htm
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/win.920/a95492/authen.htm
http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/network.920/a96573/asoauth.htm
分享到:
相关推荐
Oracle数据库的外部身份认证是一种安全机制,允许用户利用操作系统的身份验证信息来访问数据库,而无需提供额外的数据库登录凭证。这种认证方式提高了安全性,减少了密码管理的复杂性,尤其适用于企业环境中,用户...
在数据库系统管理中,认证机制是用来确认用户身份并提供相应权限的重要组成部分。在Oracle数据库管理系统中,提供了多种认证机制,其中OS认证和口令文件认证是两种常用的认证方式。本篇将详细介绍这两种认证方式的...
总的来说,Oracle身份管理解决方案通过标准化、自动化和集中化的方式来处理企业内部和外部用户的访问控制,提升了企业对网络安全的把控能力,同时也简化了IT管理的复杂性,为企业数字化转型提供了强有力的支持。
7. **身份验证**:Oracle客户端通过用户名和密码来验证用户身份,还可以使用操作系统认证、外部认证等方式。对于数据库的连接,通常使用`sqlnet.ora`文件进行身份验证的策略设置。 8. **数据访问驱动**:对于开发...
在易语言中,连接远程Oracle数据库是一项常见的任务,这对于数据处理和信息管理至关重要。Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,它提供了高效、稳定的数据存储和处理能力。 要实现易语言...
Oracle 数据库管理系统提供了多种安全机制,如身份验证、访问控制、加密等,以保护数据的安全。同时,Oracle 也提供了权限控制机制,允许管理员对数据库对象和资源进行权限管理。 5. 传输数据: 使用 Oracle 的...
OID作为一个中央身份存储库,存储用户信息,而Oracle Single Sign-On则处理验证和授权,实现跨系统的无缝登录体验。 **特性与支持架构(Features and Supported Architectures)** 此方案支持多种架构,包括但不...
- **支持新兴标准**:例如OpenID、OAuth和SPML等,这些标准有助于实现跨平台的身份验证和授权。 - **高性能技术支持**:例如Oracle的Exa系列技术,这些技术工具能够支持大规模的互联网身份管理需求,确保高效性和...
Oracle数据库安全机制包括身份验证、权限管理、加密、访问控制、审计等。 4. Oracle数据库性能优化: Oracle数据库性能优化是指通过调整数据库参数、优化SQL语句、使用索引、调整存储结构等方法来提高数据库的处理...
根据给定的文件信息,我们将深入探讨Oracle Identity Management在企业级身份管理中的应用与整合,以及Oracle Internet Directory作为其核心组件的重要角色。 ### Oracle Identity Management:企业级解决方案 ...
Oracle 11g 支持多种身份验证机制,包括操作系统身份验证、数据库身份验证和外部身份验证等。 5.2 权限管理 Oracle 11g 提供了灵活的权限管理机制,允许管理员控制用户对数据库的访问权限和操作权限。 六、Oracle...
2. **执行Oracle数据导出**:使用Oracle数据泵命令(`exp`),以指定的用户身份连接到Oracle实例,并将数据导出到指定目录下的DMP文件中。此处的`strCmd`变量包含了导出命令的所有必要参数,如用户名、密码、目标...
在安全性方面,Oracle WebServer提供了防火墙规则、访问控制列表、身份验证和授权机制等保护手段。理解这些安全机制,并根据实际需求配置,能有效防止非法访问和攻击。 最后,Oracle WebServer与其他Oracle产品,如...
1. **身份验证**:用户在访问数据库时需要通过身份验证,Oracle提供了两种方式,即数据库身份验证(基于用户名和密码)和外部身份验证(如操作系统认证、Kerberos等)。 2. **访问控制**:确保只有经过授权的用户...
双机热备Oracle数据库服务器操作实战,是一种高可用性架构设计,旨在通过两台服务器的协同工作,确保在一台服务器发生故障时,另一台能够无缝接管其任务,从而实现业务连续性和数据安全性。本文将详细解析双机热备...
- 验证客户端的身份。 - 将连接请求分配给合适的实例。 - 维护连接状态信息。 #### 二、监听器配置文件listener.ora详解 监听器的配置信息存储在listener.ora文件中,该文件通常位于$ORACLE_HOME/network/admin...
这些特性涵盖了从用户身份验证、权限控制、审计、数据加密、网络安全等多个层面。数据库管理员可以利用这些安全特性来防范来自外部的攻击和内部的非法操作,保护数据库信息的安全。 当然,Oracle数据库的秘密还包括...
- 身份验证:Oracle提供多种身份验证方式,包括数据库内身份验证和外部身份验证,确保只有授权用户能访问数据库。 - 访问控制:通过权限和角色管理,限制用户对数据库对象的访问。 - 可审计性:通过审计功能追踪...
通过结合传统的密码认证和另一种形式的身份验证(如生物识别或物理令牌),可以显著降低被未经授权访问的风险。 #### 第十章:应用程序授权 本章着重介绍了如何设计和实现基于角色的访问控制(RBAC)系统,以管理...
* 用户身份验证:验证用户的身份,确保只有授权用户可以访问数据库。 * 权限控制:控制用户对数据库的访问权限,确保用户只能访问授权的资源。 * 数据加密:对数据进行加密,保护数据免受未经授权的访问。 1.3、...