oracle中怎样让一个用户查询其它用户的trigger?

在工作期间,有时候遇到这种需求,需要将一个用户下的trigger查询权限授予给其他的用户
怎样将某个用户的trigger查询权限,授予其他用户?

方法一:
授予 create any trigger权限。这个权限太大,一般都不会考虑将这种权限授予出去

方法二:
将表的bebug权限授予其他用户。这样就能查看到该用户表上的trigger了

测试:
[[email protected] ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 14 10:37:08 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options

SQL> grant connect to erwa identified by erwa;
Grant succeeded.
SQL> select OWNER,TRIGGER_NAME from all_triggers where owner=‘SCOTT‘;
no rows selected
SQL>

在其他的会话创建一个trigger
[[email protected] ~]$ sqlplus scott/tiger
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 14 11:23:18 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options

SQL> create or replace trigger test
2 before delete on emp
3 for each row
4 declare
5 -- local variables here
6 begin
7 dbms_output.put_line(‘test‘);
8 end test;
9 /
Trigger created.
SQL>
将表的debug权限授予erwa
SQL> grant debug on emp to erwa;
Grant succeeded.
SQL>

再次查询就可以看到scott下面新建立的trigger
SQL> show user
USER is "ERWA"
SQL> select OWNER,TRIGGER_NAME from all_triggers where owner=‘SCOTT‘;
OWNER TRIGGER_NAME
------------------------------ ------------------------------
SCOTT TEST
SQL>

原文地址:https://www.cnblogs.com/erwadba/p/9182231.html

时间: 2024-08-27 16:34:56

oracle中怎样让一个用户查询其它用户的trigger?的相关文章

oracle中如何判断一个字符串是否含有汉字

oracle中如何判断一个字符串是否含有汉字 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ①全角字符的判断,或者是含有汉字的字符串的判断 本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力. 一.2.2 实验环境介绍 11.2.0.3  RHEL6.5 一.2.3 本文简介 看到网友问,怎么查询表中某个字段数据是不是包含了

oracle中如何更改一个表的一个字段属性(名称,类型)

修改字段的属性,名称方法 --修改某一个字段的类型,当该字段不为null时 ALTER TABLE 表名 ADD  字段 NUMBER(11,0) ; --新创建一列,期待的字段类型 UPDATE 表名 SET 字段_bak= 字段;COMMIT; --复制旧字段值到新字段,dml的都需要提交 ALTER TABLE 表名DROP COLUMN 字段;--删除掉旧字段 ALTER TABLE 表名RENAME COLUMN 字段_bakTO 字段;--修改新字段的名称 alter table 表

[转]ORACLE中Like与Instr模糊查询性能大比拼

instr(title,'手册')>0  相当于  title like '%手册%' instr(title,'手册')=1  相当于  title like '手册%' instr(title,'手册')=0  相当于  title not like '%手册%' t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标.但经过实际测试发现,like的效率与instr函数差别相当大.下面是一些测试结果: SQL> set timi

Oracle中 如何用一个表的数据更新另一个表中的数据

建表语句: create table table1( idd varchar2(10) , val varchar2(20) ); create table table2( idd varchar2(10), val varchar2(20) ); 插入数据: insert into table1 values ('01','1111'); insert into table1 values ('02','222'); insert into table1 values ('02','2222'

Oracle 中的SELECT 关键字(查询、检索)

1. SELECT 关键字用法: 检索单个列:select 列名 from 表名: 例:select ename from emp;检索多个列: select [列1,列2, ... ,列N] from 表名: 例:select ename , sal from emp;检索所有列:select * from 表名: 例:select * from emp; 2. 通配符(A): * :代表0个或多个列_ : 代表单个字符% : 代表0个或多个字符 使用通配符的优点:书写方便.可以检索未知列 使

Oracle中把一张表查询结果插入到另一张表中

一.Oracle数据库中,把一张表的查询结果直接生成并导入一张新表中.  例如:现有只有A表,查询A表,并且把结果导入B表中.使用如下SQL语句: Sql代码  create table B as select * from A    二.Oracle数据库中支持把查询结果导入到另外一张表中.  例如:有两个表A和B 1)如果两个表的表结构是否相同,但要插入的字段类型相同:  (1)把A表的全部字段数据插入到B表中: Sql代码  insert into B select * from A;  

给oracle用户查询其它用户表的权限

1.创建用户user1 create user user1 identified by xxxx default tablespace XXXX_table temporary tablespace temp profile default grant connect to user1; 2.方式一:批量表赋权 SELECT 'grant select on PPOSUAT_17.'|| table_name ||' to testuser_17;' from dba_tables where

Oracle 中如何判断一个字符串是否为数字

方法一:通过 To_Number 函数异常来判断 CREATE OR REPLACE FUNCTION Is_Number ( str_    VARCHAR2 ) RETURN VARCHAR2 IS num_    NUMBER; BEGIN num_ := to_number(str_); RETURN 'Y'; EXCEPTION WHEN OTHERS THEN RETURN 'N'; END Is_Number; / SQL> select Is_Number('12345') fr

Oracle中日期作为条件的查询

1.范围日期的查询: select * from goods where g_time betweento_date('2018/12/26 10:01:59','yyyy-MM-dd hh:mi:ss') and to_date('2018/12/26 10:05:17',' yyyy-MM-dd hh:mi:ss'): 2.等于某个日期的查询: select * from goodswhere g_time=to_date('2018/12/26 10:05:17','yyyy-MM-dd