Oracle VPD数据细粒度访问实现方案.doc

Oracle VPD数据细粒度访问实现方案.doc

ID:57684483

大小:91.50 KB

页数:7页

时间:2020-08-31

Oracle VPD数据细粒度访问实现方案.doc_第1页
Oracle VPD数据细粒度访问实现方案.doc_第2页
Oracle VPD数据细粒度访问实现方案.doc_第3页
Oracle VPD数据细粒度访问实现方案.doc_第4页
Oracle VPD数据细粒度访问实现方案.doc_第5页
资源描述:

《Oracle VPD数据细粒度访问实现方案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OracleVPD数据细粒度访问实现方案1.背景为确保2011年XX系统各本地网数据省集中后,在后台数据库层面能有效地隔离各本地网的数据、方便各本地网DBA人员查看和修改自己所在本地网的数据和保证其他本地网数据的安全性。2.技术概述Oracle引进了VPD(虚拟私有数据库)来对数据库进行细密度的访问控制。VPD又称为精细存取控制(FGAC)、行级安全性控制(RLS),是指使用了行级安全保护能力和应用上下文的数据库,会透明地过滤记录。VPD的行级安全是通过RLS策略函数,在用户对数据库表或视图的查询中动态

2、地使用谓词(WHERE子句),从而具有在系统执行查询运行时以变化的方式修改查询的能力。不像传统应用程序安全的设计,VPD的行级安全设计是在数据服务器端一次性地构建安全策略,而不是在应用服务器端为每一个应用程序实施安全策略,这就大大节省了设计成本,也消除了应用级安全问题。安全策略都被置于在数据库自身里,使得不同的应用程序将不会绕过安全策略,用户也就不再能绕过安全策略,因为无论用户使用何种应用程序,最终都会被数据服务器端的策略函数自动强制实施对用户的访问控制(如图)。借助于VPD,用户可以将数据库安全性实施

3、到表或者视图的更小粒度。VPD使得服务器的数据安全地和物理数据分离,每个用户只能访问到自己要访问的信息,就像有一个自己的数据库,其中只有他自己的信息,这种特性非常符合应用程序服务供应商的安全性需求。1.方案设计步骤1.1.定义安全策略目标结合综合资源系统省集中后,由于XX个本地网的数据都会在同一库中,从数据库层面维护和安全性角度来看是不太可取的,这样的话会有引起误操作和非法获取他人本地网数据信息。所以从上面2方面的考虑要求。可以简单定义独具特色的安全策略目标:在数据库层面上每个本地网只希望查到或修改自己

4、本地网的数据和自己本地网数据不能被其他本地网的人查到或修改。1.2.创建访问的相应用户和赋予权限ü以DBA管理员身份登录例如:ConnectSys/**@sdhAsSysdba;ü创建访问的相应用户并赋权例如:以广州和江门为例。CreateUserXXjmIdentifiedByXXjmDefaultTablespacesdh_dataTemporaryTablespaceTemp;GrantConnect,ResourceToXXjm;grantcreateanysynonymtouser01;gra

5、ntdropanysynonymtouser01;CreateUserXXgzIdentifiedByXXgzDefaultTablespacesdh_dataTemporaryTablespaceTemp;GrantConnect,ResourceToXXgz;grantcreateanysynonymtouser02;grantdropanysynonymtouser02;GrantExecuteOnDbms_RlsToPublic;授权省集中库创建应用上下文及同义词权限GrantCreateAny

6、Context,CreatePublicSynonymTo**0521;1.1.创建应用上下文应用程序上下文是内存中的一块暂存区域,用来存储实施安全策略需要的少量的信息,如用户名称、id号码等信息。这些信息作为应用程序上下文的安全属性被用于数据访问控制的程序设计,必须通过Oracle内置的DBMS-SESSION程序包才能对其进行设置和调用。应用程序上下文对整个数据库来说是全局的,一旦创建所有用户均能使用其属性,也可以创建本地上下文。默认的应用上下文空间是userenv,userenv属性在增强不同的数

7、据库安全策略时,起着非常重要的作用。比如:可以利用用户的IP地址和身份验证模式,控制某用户的访问,userenv中的值可以通过数据库自动设置;可以通过SYS-CONTEXT函数访问所有的应用程序上下文属性,SYS-CONTEXT函数利用命名空间作为第一个参数,利用属性名作为第二个参数,返回相应的属性值;也可以把字符串长度值作为可选的第三个参数,并利用该参数对返回的属性值进行截取。以下代码创建包含SYS-CONTEXT函数返回结果的视图env洞时给public授权可以查看,并能创建同义词env。根据系统设

8、计要求,可以在数据库中设计一个存储本地网区域编码的关系表Users(id,Ouser,AREACODE),根据关系表Users中的区域编码AREACODE设置上下文的值:例如:在XX0521用户下创建应用上下文DropContextXX0521;CreateContextXX0521UsingXX0521.Context_Package;CreateTableUsers(IdNumber(10)NotNull,OuserVarchar2(3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。