oracle没有创建function权限,如何通过TABLEFUNCTION获得ORACLE权限?

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

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

创建包:    1:创建对象    SQL>create type PrivsList is table of varchar2(4000);    SQL>/    2:创建包    包中只列举了一些常用的获得权限的功能    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完成    Function ListTabPrivs(ObjOwner varchar2 , ObjName varchar2 default null, Privs varchar2 default null, IsRevoke varchar2 default ‘N’,    Grantee varchar2 default null) return PrivsList pipelined;    /*查看对象的表格权限    Example:    select * from table(manprivs。

ListTabPrivs(‘sh,hr’,“,‘select,update,delete,insert’,'N‘,'PUBLIC’));    */    Function ListSysPrivs(ObjOwner varchar2 default null) return PrivsList pipelined;    /*产看对象的系统权限    Example:    select * from table(ManPrivs。

ListSysPrivs(‘sh,hr’));    */    Function ListRolePrivs(ObjOwner varchar2 default null) return PrivsList pipelined ;    /*查看对象的角色权限    Example:    select * from table(ManPrivs。

ListRolePrivs(‘sh,hr’));    */    Function ListRoleSysPrivs(ObjOwner varchar2 default null) return PrivsList pipelined ;    /*查看对象拥有角色的系统权限    Example:    select * from table(ManPrivs。

ListRoleSysPrivs(‘sh,hr’));    */    Function ListRoleTabPrivs(ObjOwner varchar2 default null) return PrivsList pipelined ;    /*查看对象拥有角色的表格权限    Example:    SELECT * fROM TABLE(MANPRIVS。

ListRoleTabPrivs(‘SH,HR’))    */    –Function ListRoleRolePrivs(ObjOwner varchar2 default null) return PrivsList pipelined ;    Procedure RevokeTabPrivs(ObjOwner varchar2, ObjName varchar2 default null, Privs varchar2 default null,    Grantee varchar2 default null);    /*回收对象的表格权限    Example:    Execute ManPrivs。

RevokeTabPrivs(‘HR’,“,”,‘PUBLIC’)    */    Procedure GrantTabPrivs(ObjOwner varchar2, ObjName varchar2, Privs varchar2,    Grantee varchar2);    /*对特定的对象进行授予特殊权限    Example:    Execute ManPrivs。

GrantTabPrivs(‘hr’,'jobs‘,’select,update,insert‘,'public’)    */    end ManPrivs; 。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值