IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

(oracle)11g与10g中alter session权限差异

structured data & unstructured data 2009-11-08 17:07:07 累计浏览 4,510 次
本机暂存
SQL> select * from v$version;

BANNER
---------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

SQL> select * from dba_sys_privs where grantee='LUOXUAN';

GRANTEE              PRIVILEGE                      ADMIN_
-------------------- ------------------------------ ------
LUOXUAN              CREATE SESSION                 NO
LUOXUAN              UNLIMITED TABLESPACE           NO

SQL> conn luoxuan/luoxuan
Connected.
SQL> alter session set sql_trace=true;

Session altered.

这里alter session 好像没有问题!!!下面看一下11g的情况。

SQL> select * from v$version;

BANNER
-------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE    11.1.0.6.0      Production
TNS for Linux: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production

SQL> select * from dba_sys_privs where grantee='LUOXUAN';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ -----------------------------------
LUOXUAN                        CREATE SESSION                           NO
LUOXUAN                        UNLIMITED TABLESPACE                     NO

SQL> conn luoxuan/luoxuan
Connected.
SQL> alter session set sql_trace=true;
alter session set sql_trace=true
*
ERROR at line 1:
ORA-01031: insufficient privileges

11g中尽然报越权。

继续往下看:

10g:
改变一下sort area

SQL> alter session set sort_area_size=10240; 

Session altered.

11g:
改变一下sort area

SQL> alter session set sort_area_size=10240; 

Session altered.

小结:alter session在10g,11g中,都没有问题,那为什么alter session set sql_trace=true就会报越权错误呢?

11g:

SYS用户

SQL> grant alter session to luoxuan;

Grant succeeded.

SQL> select * from dba_sys_privs where grantee='LUOXUAN';

GRANTEE                        PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
LUOXUAN                        ALTER SESSION                            NO
LUOXUAN                        CREATE SESSION                           NO
LUOXUAN                        UNLIMITED TABLESPACE                     NO

LUOXUAN用户
SQL> show user
USER is "LUOXUAN"
SQL> alter session set sql_trace=true;

Session altered.

通过alter session授权后,就可以了。

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. Oracle MTS模式下 进程地址与会话信息 (累计阅读 14,409)
  2. 我对技术方向的一些反思 (累计阅读 11,320)
  3. 数据分析中常用的数据模型 (累计阅读 7,950)
  4. TT的作者出新作品鸟:kyoto tycoon (累计阅读 7,953)
  5. TinyURL设计方案 (累计阅读 7,331)
  6. 那些在11gR2中可能惹祸的新特性,一张列表帮助你摆脱升级11gR2带来的烦恼 (累计阅读 6,880)
  7. 性能测试工具sysbench简介 (累计阅读 6,027)
  8. 大于2GB的Listener.log和运行超过198天的主机上的Oracle实例 (累计阅读 5,863)
  9. 仅仅只备份是不够的 (累计阅读 5,825)
  10. Oracle Database 12c 新特性 - Native Top N 查询 (累计阅读 5,751)