zoukankan      html  css  js  c++  java
  • 小知识:如何赋予用户查看所有存储过程和触发器的权限

    客户有这样一个需求,需要赋予用户test查看所有存储过程和触发器的权限,但是不能够对其进行修改或删除。
    当前用户test具备的权限是基本的connect, resource,其实如果对象是表的话,有点像SELECT ON TABLE_NAME的权限。
    但是实际查询存储过程和触发器,并没有显示SELECT这样的权限,可以这样查询:

    SQL> select * from session_privs where PRIVILEGE like '%TRIGGER%';
    
    PRIVILEGE
    --------------------------------------------------------------------------------
    CREATE TRIGGER
    CREATE ANY TRIGGER
    ALTER ANY TRIGGER
    DROP ANY TRIGGER
    ADMINISTER DATABASE TRIGGER
    
    SQL> select * from session_privs where PRIVILEGE like '%PROCEDURE%';
    
    PRIVILEGE
    --------------------------------------------------------------------------------
    CREATE PROCEDURE
    CREATE ANY PROCEDURE
    ALTER ANY PROCEDURE
    DROP ANY PROCEDURE
    EXECUTE ANY PROCEDURE
    DEBUG ANY PROCEDURE
    
    6 rows selected.
    

    现在在用户jingyu下创建测试用的存储过程和触发器:

    --create procedure jingyu.sp_pro1
    create or replace procedure jingyu.sp_pro1 is
      begin
      insert into jingyu.t1 values('Alfred','Zhao');
      end;
    /
    
    --create trigger jingyu.insertT1
    create or replace trigger jingyu.insertT1
     after insert on jingyu.t1
     for each row
    declare
     -- local variables here
    begin
     dbms_output.put_line('新增员工成功');
    end insertStaffHint;
    /
    

    依次尝试TRIGGER和PROCEDURE相关的权限,发现分别授予DEBUG ANY PROCEDUREADMINISTER DATABASE TRIGGER的权限可以实现查看所有存储过程和触发器的权限。

    grant DEBUG ANY PROCEDURE, ADMINISTER DATABASE TRIGGER to test;
    

    使用test用户登陆,比如plsql工具,验证可以查看到其他用户的存储过程和触发器,比如jingyu用户下的:

    jingyu.sp_pro1
    jingyu.insertT1
    

    尝试对其进行删除、修改、重建都会报错权限不足,满足客户需求。

  • 相关阅读:
    CentOS 7.3报Centos7_Base库缺少GPG公钥
    nginx重写(隐藏)index.php目录
    工作经历简写
    Centos7.4安装htop
    nginx 超时时间配置说明
    c#中数据从数据库到客户端主要几种的导出方式(导出到excel,导出到word)
    C#操作word文档如何设置表格的行高
    Windows计划任务定时启动程序运行时发生错误的解决办法
    Asp.Net MVC中请求json文件时返回404 not found的解决办法
    Angularjs 如何自定义Img的ng-load 事件
  • 原文地址:https://www.cnblogs.com/jyzhao/p/13391196.html
Copyright © 2011-2022 走看看