ITPUB??ì3
ITPUB论坛 » Oracle开发 » oracle中角色的问题!

标题: oracle中角色的问题!
离线 tiansmart
一般会员



精华贴数 0
个人空间 0
技术积分 332 (5820)
社区积分 0 (680918)
注册日期 2005-11-7
论坛徽章:0
      
      

发表于 2006-5-18 21:29 
oracle中角色的问题!

在oracle9i中,当通过角色为某个用户赋权时,如果用户正处于连接状态,能否时时生效。


只看该作者    顶部
离线 Laurence.li
玉玄宫


精华贴数 0
个人空间 0
技术积分 6967 (179)
社区积分 418 (1526)
注册日期 2004-8-19
论坛徽章:16
现任管理团队成员ITPUB北京九华山庄2008年会纪念徽章管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章
会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:龙ITPUB新首页上线纪念徽章数据库板块每日发贴之星

发表于 2006-5-18 22:45 
不能,但授权后,重新登录的用户就具备这个角色的权限了
为啥不试试?试试就知道的,呵呵


__________________
知人者智,自知者明。胜人者有力,自胜者强。知足者富,强行者有志。不失其所者久。死而不亡者寿。
只看该作者    顶部
离线 jolly10
一起看日落


来自 苏州
精华贴数 1
个人空间 120
技术积分 3214 (452)
社区积分 722 (1109)
注册日期 2005-3-7
论坛徽章:30
奥运纪念徽章2008北京奥运纪念徽章:赛艇2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:蹦床2008北京奥运纪念徽章:足球2008北京奥运纪念徽章:羽毛球
      

发表于 2006-5-19 08:01 
實踐出真知呀


__________________
MY ITPUB博客

If at first you don't succeed, try, try, try again.(再接再厲,終會成功.)
只看该作者    顶部
离线 wsf3809
有希望成为DBA的人


精华贴数 2
个人空间 0
技术积分 3162 (461)
社区积分 30808 (29)
注册日期 2005-12-16
论坛徽章:96
NBA季后赛大富翁NBA季后赛之星NBA大富翁NBA常规赛纪念章2008北京奥运纪念徽章:曲棍球2008北京奥运纪念徽章:体操
2008北京奥运纪念徽章:拳击2008北京奥运纪念徽章:艺术体操2008北京奥运纪念徽章:乒乓球2008北京奥运纪念徽章:羽毛球2008北京奥运纪念徽章:水球2008北京奥运纪念徽章:举重

发表于 2006-5-19 08:09 
应该是不可以的吧,不过没有试过,今天试试哦。


__________________
[url]=wsf3809.itpub.netwsf的杂货铺[/url]http://blog.itpub.net/admin.phpmsn: wsf8022@hotmail.com 朋友的淘宝小店
只看该作者    顶部
离线 ysfabm
逝去的风
一种理想就是一种力量!


精华贴数 24
个人空间 330
技术积分 8776 (135)
社区积分 689 (1139)
注册日期 2004-7-22
论坛徽章:31
管理团队成员ITPUB元老管理团队2007贡献徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章
蓝色妖姬嫦娥授权会员2008北京奥运纪念徽章:自行车ITPUB新首页上线纪念徽章行业板块每日发贴之星

发表于 2006-5-19 08:21 
需重新登陆的


__________________
精诚所至,金石为开!-----逝去的风:http://www.pdmworld.cn中国PDM技术社区
只看该作者    顶部
离线 tiansmart
一般会员



精华贴数 0
个人空间 0
技术积分 332 (5820)
社区积分 0 (680918)
注册日期 2005-11-7
论坛徽章:0
      
      

发表于 2006-5-19 17:33 
各位兄弟,我一直认为不能时时获的权限的.但是,近期使用的时候,确实时时获的权限了,为什么?


只看该作者    顶部
在线/呼叫 神呐救救我
资深会员



精华贴数 0
个人空间 0
技术积分 1983 (801)
社区积分 356 (1658)
注册日期 2004-3-15
论坛徽章:3
会员2007贡献徽章授权会员ITPUB新首页上线纪念徽章   
      

发表于 2006-5-19 18:31 
用什么连接的数据库?java?如果是通过应用连接的数据库,修改权限后,应用如果关闭了连接然后又很快地取连接就给人时时获得权限的感觉了


__________________
青丝万缕千行,滑落五指当失
只看该作者    顶部
离线 oldwain
老了,不狂热了。


来自 神秘的地方
精华贴数 19
个人空间 0
技术积分 24848 (39)
社区积分 5106 (278)
注册日期 2001-9-24
论坛徽章:13
管理团队成员ITPUB长老会成员ITPUB元老Heart of PUBITPUB维基人itpub2007年荐股参与纪念徽章
ITPUB新首页上线纪念徽章     

发表于 2006-5-20 23:56 
权限是实时起作用的,role要在重新登陆后起作用

测试:

先看权限的情况
session1:

system@O9I.US.ORACLE.COM> create user testpriv identified by testpriv;

用户已创建

system@O9I.US.ORACLE.COM> grant connect, resource to testpriv;

授权成功。

session2:

system@O9I.US.ORACLE.COM> connect testpriv/testpriv
已连接。
system@O9I.US.ORACLE.COM> select count(*) from scott.emp;
select count(*) from scott.emp
                           *
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在

session1:

system@O9I.US.ORACLE.COM> grant select on scott.emp to testpriv;

授权成功。

session2:

system@O9I.US.ORACLE.COM> select count(*) from scott.emp;

  COUNT(*)
----------
        14

session1:

system@O9I.US.ORACLE.COM> revoke select on scott.emp from testpriv;

撤销成功。

session2:

system@O9I.US.ORACLE.COM> select count(*) from scott.emp;
select count(*) from scott.emp
                           *
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在

可见直接授权是立即生效的, 不需要用户重新登陆.
下面看看通过角色授权的情况:
session1:

system@O9I.US.ORACLE.COM> create role testprivrole;

角色已创建

system@O9I.US.ORACLE.COM> grant select on scott.emp to testprivrole;

授权成功。

system@O9I.US.ORACLE.COM> grant testprivrole to testpriv;

授权成功。

session2:

system@O9I.US.ORACLE.COM> select count(*) from scott.emp;
select count(*) from scott.emp
                           *
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在

可见,通过角色授权并未立即生效, 我们将session2断开重新登陆

system@O9I.US.ORACLE.COM> disconnect
从Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production中断开
system@O9I.US.ORACLE.COM> connect testpriv/testpriv
已连接。
system@O9I.US.ORACLE.COM> select count(*) from scott.emp;

  COUNT(*)
----------
        14

重新登陆后,通过角色授权生效了, 那么撤销授权呢?
session1:

system@O9I.US.ORACLE.COM> revoke testprivrole from testpriv;

撤销成功。

session2:

system@O9I.US.ORACLE.COM> select count(*) from scott.emp;

  COUNT(*)
----------
        14

可见,即使是撤销角色,也要等到下次登陆才能生效。

再来看看,如果撤销对角色的授权的情况:

session1:

system@O9I.US.ORACLE.COM> revoke select on scott.emp from testprivrole;

撤销成功。

session2:

Not connected> select count(*) from scott.emp;
select count(*) from scott.emp
                           *
ERROR 位于第 1 行:
ORA-00942: 表或视图不存在

结论: 授予权限(privileges)总是立即生效的(无论授予用户还是角色),给用户授予角色要等到下次登陆才能生效。


__________________
      ▇▇▇▇▇▇▇
      ▇ITPUB▇
       ▇老 ☆ O▇
      ▇灌水专用章▇
      ▇▇▇▇▇▇▇
       我  思   我 在


投资理财| BLOG天地| WIKI世界| WEB 2.0技术|  我的BLOG! | 我的group | 订阅我的blog: RSS
blog最新文章:  (New!)封闭式基金的投资价值
       从喝羊肉汤看基本面选股
       我的投资经历(1 认购证)(2 赣江铃)(3 琼民源)(4 519行情)(5 B股)(6 股改)
只看该作者    顶部
离线 ignu
高级会员



精华贴数 3
个人空间 0
技术积分 3695 (380)
社区积分 92 (3528)
注册日期 2004-10-9
论坛徽章:6
ITPUB元老会员2007贡献徽章会员2006贡献徽章授权会员生肖徽章2007版:虎 
      

发表于 2006-5-21 14:27 
执行set role all 试试


__________________
msn :jnrjian@hotmail.com
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问