获得Oracle权限的TABLE FUNCTION实操

数据库 Oracle
以下的文章是通过TABLE FUNCTION的方式来获得Oracle权限的具体操作,如果你对其相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了。

你是否对获得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存储过程的两大步骤
责任编辑:佚名 来源: 互联网
相关推荐

2010-04-12 09:36:29

Oacle merge

2010-04-15 14:18:30

Oracle创建

2010-05-10 17:00:53

Oracle死锁进程

2010-04-09 10:13:13

Oracle数据字典

2010-04-20 13:17:44

2010-04-19 17:39:04

Oracle导入

2010-04-30 11:29:19

Oracle Data

2010-04-20 16:24:52

Oracle EM

2010-04-16 17:35:39

Oracle进程

2010-04-16 11:11:46

Oracle存储过程

2010-04-13 14:00:00

Oracle inse

2010-04-27 10:25:28

Oracle Subs

2019-07-30 15:13:30

2010-04-12 14:25:04

Oracle备份

2010-04-29 14:23:08

Oracle初始参数

2020-02-13 15:39:33

OracleGaussDB数据迁移

2010-04-14 10:48:49

Oracle使用

2010-04-09 15:22:57

Oracle数据库

2024-02-05 13:07:00

.NETTable组件

2010-05-04 17:49:39

Oracle安装
点赞
收藏

51CTO技术栈公众号