使用安全的应用程序角色实施安全性策略_第1页
使用安全的应用程序角色实施安全性策略_第2页
使用安全的应用程序角色实施安全性策略_第3页
使用安全的应用程序角色实施安全性策略_第4页
使用安全的应用程序角色实施安全性策略_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.使用安全的应用程序角色实施安全性策略目的本教程演示了如何使用数据库角色实现口令保护的角色和安全的应用程序角色。所需时间大约 30 分钟主题本教程包括下列主题:概述情景创建用户并设置表访问权限使用数据库角色使用安全的应用程序角色清理总结查看屏幕截图将光标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:此操作会同时加载所有屏幕截图,网速较慢时,响应时间可能会比较长。)注意:此外,还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。概述角色是一种用于在 Oracle 数据库中管理权限的强大方法。 可以将角色授予用户和其他角色。 将角色授予用户后,角色可以被设

2、置为默认角色,当用户成功地通过数据库访问权限验证时将激活与角色关联的权限。 如果未将角色设置为默认角色,可以使用“set_role”命令调用它。在本教程中,您将学习如何使用“安全的应用程序角色”防止将角色授予未授权用户。返回主题列表情景本教程介绍了 OSRD 的两位员工(即 Karen Partners 和 Louise Doran)如何尝试获取 oe.orders 表中的信息。 角色“ots_role”中定义了该表的访问权限。 由于 Karen 是 Louise 的经理,因此 Karen 将能够访问 oe.orders 中的信息,而 Louise 却不能。返回主题列表创建用户并设置表访问权限

3、在开始创建并分配角色之前,需要创建用户并设置相应表的访问权限。执行以下操作:1.打开一个终端窗口,执行以下命令和脚本:cd wkdirsqlplus /nologsec_approles_create_userssec_approles_create_users脚本包含以下命令:connect system/oracledrop user LOUISE.DORANOSRD.COM cascade;drop user KAREN.PARTNERSOSRD.COM cascade;create user LOUISE.DORANOSRD.COM identified by welcome1;cre

4、ate user KAREN.PARTNERSOSRD.COM identified by welcome1;grant connect, create session to LOUISE.DORANOSRD.COM;grant connect, create session to KAREN.PARTNERSOSRD.COM;connect hr/hrupdate employees set email=LOUISE.DORANOSRD.COM where email=LDORAN;update employees set email=KAREN.PARTNERSOSRD.COM where

5、 email=KPARTNER; 2.现在,您可以设置将在本教程中使用的表的访问权限。执行以下脚本:sec_approles_set_accesssec_approles_set_access脚本包含以下命令:connect oe/oerevoke select on oe.orders from public;revoke select on oe.customers from public;connect hr/hrgrant select on hr.employees to public;返回主题列表使用数据库角色在本主题中,您将创建一个数据库角色,并将该角色授予 Karen 而不是

6、Louise。执行以下步骤:1.您首先需要创建角色。 从终端窗口中执行以下 SQL 脚本:sec_approles_create_rolesec_approles_create_role脚本包含以下命令:connect system/oracledrop role ots_role;create role ots_role;2.接下来,您需要授予oe.orders和oe.customers的select访问权限。 然后,向每个用户授予此角色并将他们的配置文件设置为 none。 从终端窗口中执行以下 SQL 脚本:sec_approles_grant_rolesec_approles_grant

7、_role脚本包含以下命令:connect oe/oegrant select on oe.orders to ots_role;grant select on oe.customers to ots_role;connect system/oraclegrant ots_role to KAREN.PARTNERSOSRD.COM;alter user KAREN.PARTNERSOSRD.COM default role none;grant ots_role to LOUISE.DORANOSRD.COM;alter user LOUISE.DORANOSRD.COM default r

8、ole none;3.您现在可以设置 Karen 的角色并对 oe.orders 表执行 select。 从终端窗口中执行以下 SQL 脚本:sec_approles_test_role_karensec_approles_test_role_karen脚本包含以下命令:connect KAREN.PARTNERSOSRD.COM/welcome1;set role ots_role;select sales_rep_id, order_total from oe.orders order by order_total desc;4.请注意如果在执行 select 之前不设置角色将会发生什么情

9、况。执行下面的 SQL 脚本:sec_approles_test_wo_role_louisesec_approles_test_wo_role_louise脚本包含以下命令:connect LOUISE.DORANOSRD.COM/welcome1;select sales_rep_id, order_total from oe.orders order by order_total desc;5.由于 Louise 未被授予“ots_role”,因此她没有该角色中定义的表的访问权限。 但她只需知道该角色的名称 (ots_role) 和命令“set role”便可以自行解决此“问题”。 换言

10、之,她非常轻松地获得了她不应知道的信息的访问权限。 运行以下脚本:sec_approles_test_w_role_louisesec_approles_test_wo_role_louise脚本包含以下命令:set role ots_role;select sales_rep_id, order_total from oe.orders order by order_total desc;返回主题列表使用安全的应用程序角色在本主题中,您将创建并使用一个安全的应用程序角色。执行以下步骤:1.您首先需要创建角色。 从终端窗口中执行以下 SQL 脚本:sec_approles_sar_create

11、_rolesec_approles_sar_create_role脚本包含以下命令:connect system/oracledrop role ots_role;create role ots_role IDENTIFIED USING sec_roles;2.接下来,您需要授予oe.orders和oe.customers的select访问权限。 然后,向每个用户授予此角色并将他们的配置文件设置为 none。 从终端窗口中执行以下 SQL 脚本:sec_approles_grant_rolesec_approles_grant_role脚本包含以下命令:connect oe/oegrant

12、select on oe.orders to ots_role;grant select on oe.customers to ots_role;connect system/oraclegrant ots_role to KAREN.PARTNERSOSRD.COM;alter user KAREN.PARTNERSOSRD.COM default role none;grant ots_role to LOUISE.DORANOSRD.COM;alter user LOUISE.DORANOSRD.COM default role none;3.现在,您可以创建安全性应用程序角色过程。 从

13、终端窗口中,执行以下 SQL 脚本;注意,此过程可以执行所有类型的安全性检查。 在本示例中,您首先将“session_user”与 hr.employees 表中的电子邮件地址进行比较。 然后,检查员工的 manager_id。仅当 manager_id=100 时,该过程才设置用户的角色,否则将不设置角色。sec_approles_sar_create_procsec_approles_sar_create_proc脚本包含以下命令:connect system/oracleCREATE OR REPLACE procedure sec_roles authid current_useras

14、 v_user varchar2(50); v_manager_id number :=1; begin v_user := (sys_context (userenv, session_user); select manager_id into v_manager_id from hr.employees where email=v_user; if v_manager_id = 100 then dbms_session.set_role(ots_role); else null; end if; exception when no_data_found then v_manager_id

15、:=0;end sec_roles;/4.您需要授予此过程的执行权限。 从终端窗口中执行以下 SQL 脚本;在本示例中,OSRD 的内部安全性策略可以确定是否将此过程的执行权限授予所有员工:sec_approles_sar_grant_procsec_approles_sar_grant_proc脚本包含以下命令:connect system/oracleGRANT EXECUTE ON sec_roles to KAREN.PARTNERSOSRD.COM;GRANT EXECUTE ON sec_roles to LOUISE.DORANOSRD.COM;5.现在,您可以测试 Karen

16、的访问权限。执行下面的 SQL 脚本:sec_approles_sar_test_role_karensec_approles_sar_test_role_karen脚本包含以下命令:connect KAREN.PARTNERSOSRD.COM/welcome1;execute system.sec_roles;select sales_rep_id, order_total from oe.orders order by order_total desc;6.现在,您可以测试 Louise 的访问权限。执行下面的 SQL 脚本:sec_approles_sar_test_role_louis

17、esec_approles_sar_test_role_louise脚本包含以下命令:connect LOUISE.DORANOSRD.COM/welcome1;execute system.sec_roles;select sales_rep_id, order_total from oe.orders order by order_total desc;返回主题列表清理执行以下步骤清理环境。 如果您要在执行本 OBE 后执行任何其他 OBE,则必须执行以下步骤:1.从终端窗口中,执行以下 SQL 脚本:sec_appsrole_cleanupsec_appsrole_cleanup脚本包含以下命令:connect system/oracledrop role ots_role;drop procedure sec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论