获得Oracle权限的TABLEFUNCTION实操

你是否对获得Oracle对象的权限的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得Oracle权限的方案,即,通过TABLE FUNCTION获得Oracle权限。

专注于为中小企业提供成都网站设计、网站建设、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业南丹免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

 系统权限 角色权限 ,Oracle提供了以DBA_* ROLE_* SESSION_* 等开头的系统视图供用户查询权限分配的信息,我们也可以通过OEM等其他工具来得到这些权限,在这里我们如果通过TABLE FUNCTION来获得这些Oracle权限.

声明:由于获得权限需要系统视图的支持,我们需要dba_sys_privs,dba_role_privs,role_sys_privs,role_tab_privs,dba_tables有读Oracle权限,当然,可以把下面的包建立在sys用户下面,也可以通过授权模式在其他用户上使用.

创建包:

1:创建对象

 
 
 
  1. SQL>create type PrivsList is table of varchar2(4000);  
  2. SQL>/  

2:创建包

包中只列举了一些常用的获得Oracle权限的功能

create or replace package ManPrivs is

—Author : LIYAN

—Created : 2009-8-26 10:06:18

—Purpose :

执行此包中过程需要对dba_sys_privs,dba_role_privs,role_sys_privs,role_tab_privs,dba_tables有读权限

并且拥有DBA授权能力

建议系统权限以及角色权限授权、权限回收操作使用OEM完成

查询角色包含角色权限建议使用OEM完成

 
 
 
  1. Function ListTabPrivs(ObjOwner varchar2 , 
    ObjName varchar2 default null, Privs varchar2 default null, 
    IsRevoke varchar2 default ‘N’,  
  2. Grantee varchar2 default null) return PrivsList pipelined;  

查看对象的表格Oracle权限

 
 
 
  1. Example:  
  2. select * from table(manprivs.ListTabPrivs(‘sh,hr’,“,‘select,update,delete,insert’,'N‘,'PUBLIC’));  
  3. */  
  4. Function ListSysPrivs(ObjOwner varchar2 default null) return PrivsList pipelined;  

产看对象的系统权限

 
 
 
  1. Example:  
  2. select * from table(ManPrivs.ListSysPrivs(‘sh,hr’));  
  3. */  
  4. Function ListRolePrivs(ObjOwner varchar2 default null) return PrivsList pipelined ;  

查看对象的角色Oracle权限

 
 
 
  1. Example:  
  2. select * from table(ManPrivs.ListRolePrivs(‘sh,hr’));  
  3. */  
  4. Function ListRoleSysPrivs(ObjOwner varchar2 default null) return PrivsList pipelined ;  

查看对象拥有角色的系统权限

 
 
 
  1. Example:  
  2. select * from table(ManPrivs.ListRoleSysPrivs(‘sh,hr’));  
  3. */  
  4. Function ListRoleTabPrivs(ObjOwner varchar2 default null) return PrivsList pipelined ;  

查看对象拥有角色的表格权限

 
 
 
  1. Example:  
  2. SELECT * fROM TABLE(MANPRIVS.ListRoleTabPrivs(‘SH,HR’))  
  3. */  
  4. Function ListRoleRolePrivs(ObjOwner varchar2 default null) return PrivsList pipelined ;  
  5. Procedure RevokeTabPrivs(ObjOwner varchar2, ObjName varchar2 default null, Privs varchar2 default null,  
  6. Grantee varchar2 default null);  

回收对象的表格Oracle权限

 
 
 
  1. Example:  
  2. Execute ManPrivs.RevokeTabPrivs(‘HR’,“,”,‘PUBLIC’)  
  3. */  
  4. Procedure GrantTabPrivs(ObjOwner varchar2, ObjName varchar2, Privs varchar2,  
  5. Grantee varchar2);  

对特定的对象进行授予特殊Oracle权限

 
 
 
  1. Example:  
  2. Execute ManPrivs.GrantTabPrivs(‘hr’,'jobs‘,’select,update,insert‘,'public’)  
  3. */  
  4. end ManPrivs;  

上述的相关内容就是对通过TABLE FUNCTION获得Oracle权限的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. Oracle 字符串split的相关实际应用代码介绍
  2. Oracle数据库的安全,PL/SQL的SQL注入
  3. Oracle merge into的实操示例
  4. 成为成功Oracle DBA的六个必备思想
  5. 调用Oracle存储过程的两大步骤

本文名称:获得Oracle权限的TABLEFUNCTION实操
链接URL:http://www.gawzjz.com/qtweb/news29/164079.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联