www.Orasql.Com
 
用户名: 密码:  验证码: 注册|找回密码 oracleawen's blog  
 
         当前位置 >> 技术论坛  发表帖子     论坛版块     查找帖子
创建一个用户test,只有connect 和resource的权限,查询权限的数据字典,是没有alter session的权限的,可是为什么以下alter session有的可以执行,有的不可以呢?-技术论坛||Oracle高手之路—Orasql.Com!
            创建一个用户test,只有connect 和resource的权限,查询权限的数据字典,是没有alter session的权限的,可是为什么以下alter session有的可以执行,有的不可以呢?
 
发贴人:oraerr
oracleerr@gmail.com
用户级别:普通会员
发贴总数:0
注册时间:2012-07-10 21:44:29
2013-03-30 22:31:23
执行脚本如下:创建一个用户test,只有connect 和resource的权限,查询权限的数据字典,是没有alter session的权限的,可是为什么以下alter session有的可以执行,有的不可以呢?

sql> create user test identified by test;

user created

sql> grant connect,resource to test;

grant succeeded

sql> conn test/test
connected to oracle database 10g enterprise edition release 10.2.0.1.0
connected as test

sql> alter session set nls_date_format='yyyy-mm-dd';

session altered

sql>  alter session set sql_trace=true;

alter session set sql_trace=true

ora-01031: 权限不足

查看它的权限,确实没有alter session的权限,为什么两个alter session一个能执行,一个不能执行呢?


sql> select * from role_sys_privs ;

role                           privilege                                admin_option
------------------------------ ---------------------------------------- ------------
resource                       create sequence                          no
resource                       create trigger                           no
resource                       create cluster                           no
resource                       create procedure                         no
resource                       create type                              no
connect                        create session                           no
resource                       create operator                          no
resource                       create table                             no
resource                       create indextype                         no

9 rows selected

另外我还想问一个,如果权限里没有列出来的,比如alter table的权限,没有列出来,就没有这个权限吗?可是,我测试了,创建了一个表,然后alter table 增加字段可以的呀....

sql> create table t (a int);

table created

sql> alter table t add (b int);

table altered
-------------------
这问题查一下就知道了,就在前十行里
to enable and disable the sql trace facility, you must have alter session system privilege.

you do not need any privileges to perform the other operations of this statement unless otherwise indicated.
sql trace需要显式的,其他像nls_date_format就不用了

      
 
  
 Orasql.Com|E-Mail:oracleawen@gmail.com|Phone:15271942915|Copyright © 2011|All Rights Reserved|