知识大全 9i新特性之二安全篇

Posted

篇首语:非淡泊无以明志,非宁静无以致远。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 9i新特性之二安全篇相关的知识,希望对你有一定的参考价值。

  这篇文章主要讲解应用程序客户端访问数据库的新特性 有些地方理解不好  写得也不是很好 请大家帮忙指正 谢谢!   I安全认证拥有   解决了阻止未经认证的用户通过其他客户端访问数据的问题    在隐藏密码的实现方面有了比以前更好的机制    角色的有效性是通过一个包来检测而不是一个口令  ……应用设置的概念在 i中已经作了介绍 i中细粒度访问控制能够达到制作有效的私有数据库 而在 i中应用设置已经可以用一个角色来实现 因此提高了私有数据库的可用性     为了确认一个角色是否有效 必须调用关联的存储过程 这个存储过程可以通过使用sys_context( userenv nnn)来制定一系列的额外检查 nnn可以是ip_address proxy_account等 (举例 我们可以在存储过程和触发器里调用select sys_context( userenv ip_address) from dual得到客户端的ip 然后根据这个资料进行判断 sys_context的具体用法如下     select  SYS_CONTEXT( USERENV TERMINAL ) terminal   SYS_CONTEXT( USERENV LANGUAGE ) language   SYS_CONTEXT( USERENV SESSIONID ) sessionid   SYS_CONTEXT( USERENV INSTANCE ) instance   SYS_CONTEXT( USERENV ENTRYID ) entryid   SYS_CONTEXT( USERENV ISDBA ) isdba   SYS_CONTEXT( USERENV NLS_TERRITORY ) nls_territory   SYS_CONTEXT( USERENV NLS_CURRENCY ) nls_currency   SYS_CONTEXT( USERENV NLS_CALENDAR ) nls_calendar   SYS_CONTEXT( USERENV NLS_DATE_FORMAT ) nls_date_format   SYS_CONTEXT( USERENV NLS_DATE_LANGUAGE ) nls_date_language   SYS_CONTEXT( USERENV NLS_SORT ) nls_sort   SYS_CONTEXT( USERENV CURRENT_USER ) current_user   SYS_CONTEXT( USERENV CURRENT_USERID ) current_userid   SYS_CONTEXT( USERENV SESSION_USER ) session_user   SYS_CONTEXT( USERENV SESSION_USERID ) session_userid   SYS_CONTEXT( USERENV PROXY_USER ) proxy_user   SYS_CONTEXT( USERENV PROXY_USERID ) proxy_userid   SYS_CONTEXT( USERENV DB_DOMAIN ) db_domain   SYS_CONTEXT( USERENV DB_NAME ) db_name   SYS_CONTEXT( USERENV HOST ) host   SYS_CONTEXT( USERENV OS_USER ) os_user   SYS_CONTEXT( USERENV EXTERNAL_NAME ) external_name   SYS_CONTEXT( USERENV IP_ADDRESS ) ip_address   SYS_CONTEXT( USERENV NEORK_PROTOCOL ) neork_protocol   SYS_CONTEXT( USERENV BG_JOB_ID ) bg_job_id   SYS_CONTEXT( USERENV FG_JOB_ID ) fg_job_id   SYS_CONTEXT( USERENV AUTHENTICATION_TYPE ) authentication_type   SYS_CONTEXT( USERENV AUTHENTICATION_DATA ) authentication_data  from dual     i以前的版本 认证角色是通过password的方法 将用户名 口令写入应用程序来进行连接   这样的缺点是 如果口令在客户端被解析出来 任何应用程序都能够访问你的数据   下面我们看一个 i认证角色的例子   CREATE ROLE salesuser  IDENTIFIED USING sh sales_c;    CREATE OR REPLACE PROCEDURE sales_c  AUTHID CURRENT_USER IS  ipc STRING( );  BEGIN /* Only certain IP addresses allowed */  SELECT SYS_CONTEXT( USERENV IP_ADDRESS )  INTO ipc FROM DUAL;  IF SUBSTR(ipc ) !=   THEN RETURN; END IF; /* Fail silently */  DBMS_SESSION SET_ROLE( SALESUSER ); /* Enable */  END;  /  这个过程做到 如果不在 网段 这个角色失效     全局应用设置  一个设置现在能够被全局化和共享   全局化应用设置就是:   比每个进程一个设置更节省资源    利用有效私有数据库能够更好的适应基于web的应用    仍然可以通过identifier验证访问权限    更适应多路连接   oracle i的有效私有数据库特性提供了连接池以允许多重会话使用一个或多个全局应用设置 而不需要为每个用户建立一个应用设置 全局应用设置为基于web的应用提供了额外的灵活的设置 在多重会话中重复利用普通应用设置大大提高了性能     在ebusiness应用中 应用用户代理认证可以使用公用应用设置来提高适应性和性能 通过公用应用设置的一次设立代替为每个会话独立设置初始化应用设置这种方式进行会话级重用提高了性能     为了决定当前会话的运行环境以符合细粒度访问控制 中间件必须为每一个应用设定应用设置 全局设置允许中间件把各种应用设置存储在实例里并且在会话建立时为一个用户会话指派设置 这个设置也就成为了会话的运行设置 这将大大减小用户会话在应用连接池环境中的建立时间     管理全局应用设置   一些接口已经被加到dbms_session包里来管理客户端会话的应用设置   包括   set_context   clear_context   set_identifier   clear_identifier  为了支持通过中间件应用管理的会话连接池 对于dbms_session接口的管理应用设置也为每一个应用设置增加了一个客户端认证 在这种方式下 我们可以全局管理应用设置而客户端仅仅看到为他们设置的应用设置     中间件应用器服务能够使用set_context来为一个制定的客户id设置应用设置 那么 当分配数据库连接来处理客户端需求 应用服务器需要执行set_identifier来表示这个应用会话的id 那么 每次客户端调用sys_context 仅仅被指派给这个验证用户的设置被返回     全局应用设置函数 (举例)  管理员通过以下指令建立全局设置   SQL> CREATE CONTEXT webhr USING hr init ACCESSED GLOBALLY;  应用服务器启动将为HR用户建立多重连接   当用户JOHN连接到应用服务器后 JOHN不是一个数据库用户 应用服务器将在应用里鉴别JOHN 并且为这个连接 设置一个临时的会话ID 基于唯一应用会话属性 这个会话ID作为COOKIE或者应用服务器的维护的一部分返回用户JOHN的浏览器     应用服务器为这个客户端初始应用设置称为HR INIT包 它执行  DBMS_SESSION SET_CONTEXT( webhr id JOHN HR );  DBMS_SESSION SET_CONTEXT( webhr dep sales HR );  例子   CREATE CONTEXT webhr USING hr init ACCESSED GLOBALLY;  DBMS_SESSION SET_CONTEXT( webhr id JOHN HR );  DBMS_SESSION SET_IDENTIFIER( );  …  SYS_CONTEXT calls are in John s context  …  DBMS_SESSION CLEAR_IDENTIFIER( );  当用户JOHN用应用服务器访问数据 应用服务器找到所有登陆的会话 并执行DBMS_SESSION SET_IDENTIFIER( ) 所有的这个会话的SYS_CONTEXT将只返回属于这个客户端的应用程序设置 例如SYS_CONTEXT( WEBHR ID ) 将只返回 JOHN     最后注意 如果数据访问是通过有效私有数据库来管理的 建立设置并不能自动限制数据访问 cha138/Article/program/Oracle/201311/18800

相关参考

知识大全 在Oracle10g和9i上一些新的特性的总结

在Oracle10g和9i上一些新的特性的总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!内部P

知识大全 9i新特性之——在线表格重定义研究5

  所有的工作都准备完成我们执行重构完成的过程这个过程将执行表的交换  SQL>executeDBMS_REDEFINITIONFINISH_REDEF_TABLE(MYTESTTESTINT_

知识大全 oracle9i新特性概要

Oraclei电子商务平台       Oraclei通过提供旨在用于电子商务环境的一系列特定功能和产品束像Oraclei那样继续

知识大全 9i新特性之——在线表格重定义研究4

  创建我们需要重新定义的中间表这个是一个分区表以后我们将把原表的所有数据在线转移到该表上来  SQL>createtableint_test(aintbint)partitionbyrange

知识大全 Oracle9i新特性-索引监视及注意事项[修正版]

Oracle9i新特性-索引监视及注意事项[修正版]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Oracle 9i新特性研究系列之四 -- 延续性初始化参数文件

Oracle9i新特性研究系列之四--延续性初始化参数文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 9i新特性之——在线表格重定义研究1

  前言     在Oraclei出现之前你只能通过MOVE或导出和导入的方式来进行表格重定义因此表格重定义的过程可能相当漫长或者说是一个离线过程在此期间应用程序对该表的操作将失败特别是大型

知识大全 SQLServer 2008中SQL增强之二 Top新用途

SQLServer2008中SQL增强之二Top新用途  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 安装配置Jboss完全篇

安装配置Jboss完全篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jboss的配置安装  

知识大全 Oracle FAQ 之网络与安全篇

OracleFAQ之网络与安全篇  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLE网络