`

oracle授权过程

阅读更多

/* 99.SQL$
<HUG - 110426.1 By: Jim>
1.任务:将userA所有的table(或view等)的select权限(或insert等)授权给userB
2.基本思想: 以usera登录.将select 'grant insert on '||table_name ||' to userb;' from user_objects ;生成的所有SQL语句执行。
</HUG - 110426.1 By: Jim>

<TEST>
 set serveroutput on
 declare
  p_owner varchar2;
  p_obj_type varchar2;
 begin
  p_owner := 'japp';
  p_obj_type := 'table';
  grant_objects(p_owner,p_obj_type);
 end;
 /
 set serveroutput off
</TEST>
*/


create or replace procedure grant_objects(
p_owner varchar2, -- 引用者,即 SCHEMA
p_obj_type varchar2 -- 对象类型:'TABLE','VIEW','PROCEDURE','FUNCTION'
) as

 str_sql varchar2(1000);
 in_count number default 0;
 begin
 for grant_ob_value in (select OBJECT_NAME from user_objects where OBJECT_TYPE in(upper(p_obj_type)))
    loop
  if 'TABLE' = upper(p_obj_type) then
   str_sql := 'grant DELETE,SELECT,INSERT,UPDATE on '||grant_ob_value.OBJECT_NAME||' to '||upper(p_owner);  
  elsif 'VIEW' = upper(p_obj_type) then
   str_sql := 'grant SELECT on '||grant_ob_value.OBJECT_NAME||' to '||upper(p_owner);
  elsif 'PROCEDURE' = upper(p_obj_type) then
   str_sql := 'grant EXECUTE on '||grant_ob_value.OBJECT_NAME||' to '||upper(p_owner);
  elsif 'FUNCTION' = upper(p_obj_type) then
   str_sql := 'grant EXECUTE on '||grant_ob_value.OBJECT_NAME||' to '||upper(p_owner);
  elsif 'FUNCTION' = upper(p_obj_type) then
   str_sql := 'grant EXECUTE on '||grant_ob_value.OBJECT_NAME||' to '||upper(p_owner);
  end if;
  --select count(1) into in_count from DBA_TAB_PRIVS D where D.GRANTEE = upper(p_owner) and D.TABLE_NAME = grant_ob_value.OBJECT_NAME;
        begin          
            IF in_count = 0 THEN
              dbms_output.put_line(str_sql);
              execute immediate str_sql;
            END IF;
        exception
          --When Others Then Null;
            when OTHERS Then
    dbms_output.put_line(sqlerrm);
        end;
    end loop; 
end;

分享到:
评论

相关推荐

    ORACLE单独授权表或视图或存储过程.doc

    ORACLE单独授权表或视图或存储过程 ORACLE单独授权是指在ORACLE数据库中,授予某个用户对部分数据表、视图或存储过程的访问权限,而不是授予全数据库的访问权限。本文将详细介绍如何授予用户对部分表、视图或存储...

    oracle存储过程unwrap解密工具.zip

    在某些情况下,存储过程可能被加密,这可能是出于安全考虑,防止未授权访问或篡改代码。 unwrap工具的目的是解析和解密这些加密的存储过程,以便能够阅读和理解其中的代码。它通常是一个图形用户界面(GUI)应用...

    Oracle存储过程机密工具

    然而,出于安全考虑,有时会将存储过程加密,以保护敏感的业务代码不被未经授权的用户查看或修改。本篇将详细讲解如何对Oracle加密的存储过程进行解密,以及涉及的相关知识点。 首先,理解Oracle的加密机制至关重要...

    oracle存储过程加密

    1. **安全性提升**:通过加密存储过程,可以防止未授权用户查看或修改存储过程的源代码,从而提高了系统的安全性。 2. **知识产权保护**:对于商业软件来说,存储过程往往包含了核心业务逻辑,加密可以有效保护这些...

    Oracle存储过程、函数和包

    ### Oracle存储过程、函数和包的关键知识点 #### 1. 存储过程和函数的认识 - **定义**:存储过程和函数是特定类型的PL/SQL块,它们被存储在数据库中,作为命名的对象存在。 - **命名存储**:与普通的PL/SQL块不同,...

    Oracle在VMWare虚拟化环境的授权白皮书.pdf

    Oracle虚拟化环境授权白皮书 Oracle虚拟化环境授权白皮书是关于Oracle在VMWare虚拟化环境中的授权、支持和许可证的详细指南。该白皮书提供了一个详细的概述,涵盖了Oracle认证、支持和许可证在VMWare环境中的应用。...

    Oracle_授权审计表Truncate权限.docx

    Oracle 授权审计表 Truncate 权限 Oracle 数据库中的授权审计表是指系统自动生成的审计表,用于记录数据库中各种操作的审计信息。这些审计信息可以用于跟踪数据库中发生的各种操作,提高数据库的安全性。 Truncate...

    Oracle数据库(表空间、用户、授权、存储过程、触发器)

    Oracle数据库(表空间、用户、授权、存储过程、触发器)

    oracle 存储过程,批量产生用

    在IT领域,尤其是在数据库管理与开发中,Oracle存储过程是一种常用的技术手段,用于实现复杂的业务逻辑、数据处理和批量操作。根据给定的文件信息,本文将深入探讨Oracle存储过程如何用于批量创建用户,以及如何读取...

    oracle授权语法

    ### Oracle授权语法详解 在Oracle数据库管理中,权限管理是一项重要的功能,它允许数据库管理员(DBA)控制用户对数据库对象的访问级别。本文将详细解释Oracle中的授权语法,并通过具体的例子来阐述如何进行不同类型...

    Oracle_审计表_sys.aud$_授权给用户Truncate权限.docx

    ### Oracle 审计表 Sys.Aud$ 授权与管理 #### 概述 在Oracle数据库管理系统中,审计功能是一项重要的安全特性,它记录了数据库的所有访问活动,包括但不限于登录、查询、更新等操作。这些审计记录通常存储在系统表...

    DDTek.Oracle oracle 无客户端直联,带授权

    "无客户端直联"意味着它使用纯.NET组件来实现与Oracle服务器的连接,简化了部署过程。 描述中提到的"C#直接联oracle无需客户端"进一步证实了这个库是为C#程序员提供的,使他们能够利用C#语言的特性直接与Oracle...

    Oracle 查询用户,表,授权相关语句

    在Oracle数据库管理中,查询用户、表以及授权信息是日常操作的重要部分。这些操作对于数据库管理员(DBA)和开发人员来说至关重要,因为它们有助于理解数据的存储结构和权限分配。以下是一些关于如何在Oracle中执行...

    加密Oracle存储过程.doc

    为了增强安全性,有时我们需要对这些存储过程进行加密,防止未授权的访问和阅读。本文将详细介绍如何在Oracle中加密存储过程。 1. **环境变量设置**: 在执行加密操作前,需要设置NLS_LANG环境变量。这个变量决定...

    Oracle存储过程开发规范与技巧

    Oracle存储过程是数据库管理系统中一组预编译的SQL语句,用于执行特定任务,如数据处理、业务逻辑等。在开发存储过程时,遵循一定的规范和技巧可以显著提高代码的可读性、可维护性和性能。以下是一些关键点: 1. **...

    Oracle 授权 ORA-00990: 权限缺失或无效

    在本篇文章中,我们将深入探讨这个问题的原因、解决方案以及如何正确地授权和管理Oracle数据库的权限。 1. **错误原因**: - 用户未被授予执行特定操作所需的系统权限,例如UPDATE、DELETE、SELECT或INSERT。 - ...

    Oracle存储过程.pdf

    存储过程可以限制非授权用户访问特定的数据,以避免数据泄露或被恶意操作。 尽管存储过程有诸多优势,但其定制化特性意味着它往往是特定于某个数据库系统的。不同数据库厂商的支持的编程语言可能不同,因此在迁移至...

    oracle 编译存储过程 赋权 查询用户占用空间

    在Oracle数据库管理中,"编译存储过程"、"赋权"和"查询用户占用空间"是三个重要的操作,它们对于数据库的维护和优化至关重要。接下来,我们将详细探讨这三个概念。 1. **编译存储过程**: 存储过程是预编译的SQL...

    oracle存储过程详解

    2. **安全性**:只有被授权的用户才能执行存储过程和函数,这提供了数据访问的安全性,确保只有拥有相应权限的用户可以操作。 3. **重用性**:存储过程可以作为公共模块被多个程序调用,有利于代码复用,例如,计算...

    Oracle创建表空间、临时表、用户及用户授权

    在Oracle数据库管理中,表空间(Tablespaces)、临时表(Temporary Tables)、用户(Users)以及用户授权(User Authorization)是数据库管理员(DBA)进行数据库架构设计和安全管理的基础操作。以下将详细介绍这些...

Global site tag (gtag.js) - Google Analytics