[20180417]使用10046事件需要什么权限.txt

本文记录了一次尝试在Oracle数据库中启用10046事件进行存储过程调试的经历。面对权限不足的问题,通过逐步排查最终确认仅需授予用户'ALTER SESSION'权限即可解决问题。

[20180417]使用10046事件需要什么权限.txt

--//今天想调试一个存储过程,发现生产系统的用户居然不能执行:
TEST@book> @ &r/10046on 12
old   1: alter session set events '10046 trace name context forever, level &1'
new   1: alter session set events '10046 trace name context forever, level 12'
ERROR:
ORA-01031: insufficient privileges

--//看看执行这个需要什么权限.

1.环境:
SCOTT@book> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

--//我建立的test用户如下:

CREATE USER TEST
  IDENTIFIED BY <password>
  DEFAULT TABLESPACE USERS
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
  -- 2 Roles for TEST
  GRANT CONNECT TO TEST;
  GRANT RESOURCE TO TEST;
  ALTER USER TEST DEFAULT ROLE ALL;
  -- 1 System Privilege for TEST
  GRANT UNLIMITED TABLESPACE TO TEST;

2.这样设置限制多多.

TEST@book> show sga
ORA-00942: table or view does not exist

TEST@book> show parameter cursor
ORA-00942: table or view does not exist

TEST@book> show parameter cursor_sharing
ORA-00942: table or view does not exist

TEST@book> @ &r/10046on 12
old   1: alter session set events '10046 trace name context forever, level &1'
new   1: alter session set events '10046 trace name context forever, level 12'
ERROR:
ORA-01031: insufficient privileges

--//很奇怪修改用户参数没有影响.
TEST@book> alter session set cursor_sharing=force ;
Session altered.

TEST@book> show parameter cursor_sharing
ORA-00942: table or view does not exist

3.仅仅授权给用户alter session就ok了:

SCOTT@book> grant alter session to test;
Grant succeeded.

TEST@book> alter session set cursor_sharing=force ;
Session altered.

TEST@book> @ &r/10046on 12
old   1: alter session set events '10046 trace name context forever, level &1'
new   1: alter session set events '10046 trace name context forever, level 12'
Session altered.

TEST@book> show parameter cursor_sharing
ORA-00942: table or view does not exist

总结:
--//权限这东西就是一把双刃剑.现在搞得生产系统自己内部的人操作都不方便.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值