Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3058807
  • 博文数量: 206
  • 博客积分: 3409
  • 博客等级: 中校
  • 技术积分: 4066
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-24 10:21
个人简介

● ITPUB名人堂嘉宾 ● ChinaUnix社区博客专家 ● ChinaUnix社区Oracle板块版主 ● 优酷网认证音乐牛人:EricGuitar ● SDOUG 核心成员 ●E-mail:gaoqiangdba@163.com

文章分类

全部博文(206)

文章存档

2021年(11)

2020年(7)

2019年(7)

2016年(5)

2015年(36)

2014年(23)

2013年(15)

2012年(23)

2011年(61)

2010年(18)

分类: Oracle

2012-01-29 16:21:55

  1. 对象权限测试:  
  2. 初始状态下,user2和user3都没有user1.t1的对象权限  
  3. user1下存在t1表:  
  4. duzz$user1@orcl>select * from t1;  
  5.   
  6.         C1  
  7. ----------  
  8.       1111  
  9.   
  10. Elapsed: 00:00:00.00  
  11.   
  12. user2不能查询user1.t1:  
  13. duzz$user2@orcl>select * from user1.t1;  
  14. select * from user1.t1  
  15.                     *  
  16. ERROR at line 1:  
  17. ORA-00942: table or view does not exist  
  18.   
  19.   
  20. Elapsed: 00:00:00.00  
  21.   
  22. user3不能查询user1.t1:  
  23. duzz$user3@orcl>select * from user1.t1;  
  24. select * from user1.t1  
  25.                     *  
  26. ERROR at line 1:  
  27. ORA-00942: table or view does not exist  
  28.   
  29.   
  30. Elapsed: 00:00:00.01  
  31.   
  32. user1赋予user2在t1上的对象权限,同时允许user2将该权限赋予别的用户:  
  33. duzz$user1@orcl>grant all on t1 to user2 with grant option;  
  34.   
  35. Grant succeeded.  
  36.   
  37. Elapsed: 00:00:00.00  
  38.   
  39. user2已经可以查询user1.t1,同时user2将user1.t1的对象权限赋予user3:  
  40. duzz$user2@orcl>select * from user1.t1;  
  41.   
  42.         C1  
  43. ----------  
  44.       1111  
  45.   
  46. Elapsed: 00:00:00.00  
  47. duzz$user2@orcl>grant all on user1.t1 to user3;  
  48.   
  49. Grant succeeded.  
  50.   
  51. Elapsed: 00:00:00.00  
  52. duzz$user2@orcl>  
  53.   
  54. user3也可以查询user1.t1了:  
  55. duzz$user3@orcl>select * from user1.t1;  
  56.   
  57.         C1  
  58. ----------  
  59.       1111  
  60.   
  61. Elapsed: 00:00:00.00  
  62.   
  63. user1尝试直接从user3那里回收权限,执行语句虽然没有报错,但是并没有实际作用:  
  64. duzz$user1@orcl>revoke all on t1 from user3;  
  65.   
  66. Revoke succeeded.  
  67.   
  68. Elapsed: 00:00:00.00  
  69.   
  70. user3仍然能够查询user1.t1:  
  71. duzz$user3@orcl>select * from user1.t1;  
  72.   
  73.         C1  
  74. ----------  
  75.       1111  
  76.   
  77. Elapsed: 00:00:00.00  
  78.   
  79. user1这次开始从user2那里回收权限,  
  80. duzz$user1@orcl>revoke all on t1 from user2;  
  81.   
  82. Revoke succeeded.  
  83.   
  84. Elapsed: 00:00:00.01  
  85.   
  86. user2权限被收回:  
  87. duzz$user2@orcl>select * from user1.t1;  
  88. select * from user1.t1  
  89.                     *  
  90. ERROR at line 1:  
  91. ORA-00942: table or view does not exist  
  92.   
  93.   
  94. Elapsed: 00:00:00.01  
  95.   
  96. 与此同时,user3的权限也被收回:  
  97. duzz$user3@orcl>select * from user1.t1;  
  98. select * from user1.t1  
  99.                     *  
  100. ERROR at line 1:  
  101. ORA-00942: table or view does not exist  
  102.   
  103.   
  104. Elapsed: 00:00:00.01  
  105.   
  106. 对于对象权限,虽然不能从非直接授予的用户回收,但是回收具有级联性。  
  107.   
  108.   
  109. 系统权限测试:  
  110. user1具有CREATE VIEW的系统权限,同时该权限可以grant给别的用户,user2和user3则没有该权限:  
  111. duzz$user1@orcl>select * from session_privs;  
  112.   
  113. PRIVILEGE  
  114. ---------------------------------------------------  
  115. CREATE SESSION  
  116. UNLIMITED TABLESPACE  
  117. CREATE TABLE  
  118. CREATE VIEW  
  119.   
  120. Elapsed: 00:00:00.00  
  121.   
  122. user2没有CREATE VIEW的系统权限:  
  123. duzz$user2@orcl>select * from session_privs;  
  124.   
  125. PRIVILEGE  
  126. ------------------------------------------------  
  127. CREATE SESSION  
  128. UNLIMITED TABLESPACE  
  129. CREATE TABLE  
  130.   
  131. Elapsed: 00:00:00.01  
  132.   
  133. user3也没有CREATE VIEW的系统权限:  
  134. duzz$user3@orcl>select * from session_privs;  
  135.   
  136. PRIVILEGE  
  137. ------------------------------------------------  
  138. CREATE SESSION  
  139. UNLIMITED TABLESPACE  
  140. CREATE TABLE  
  141.   
  142. Elapsed: 00:00:00.01  
  143.   
  144. user1将CREATE VIEW的权限赋予user2,同时赋予user2可以将该权限赋予其它用户的权限:  
  145. duzz$user1@orcl>grant create view to user2 with admin option;  
  146.   
  147. Grant succeeded.  
  148.   
  149. Elapsed: 00:00:00.01  
  150.   
  151. user2获得CREATE VIEW的权限:  
  152. duzz$user2@orcl>select * from session_privs;  
  153.   
  154. PRIVILEGE  
  155. -------------------------------------------------  
  156. CREATE SESSION  
  157. UNLIMITED TABLESPACE  
  158. CREATE TABLE  
  159. CREATE VIEW  
  160.   
  161. Elapsed: 00:00:00.00  
  162.   
  163.   
  164. user2将CREATE VIEW的权限赋予user3:  
  165. duzz$user2@orcl>grant create view to user3;  
  166.   
  167. Grant succeeded.  
  168.   
  169. Elapsed: 00:00:00.00  
  170.   
  171. user3获得CREATE VIEW的权限:  
  172. duzz$user3@orcl>select * from session_privs;  
  173.   
  174. PRIVILEGE  
  175. --------------------------------------------------  
  176. CREATE SESSION  
  177. UNLIMITED TABLESPACE  
  178. CREATE TABLE  
  179. CREATE VIEW  
  180.   
  181. Elapsed: 00:00:00.01  
  182.   
  183. 不同于对象权限,系统权限可以直接从非直接授予的用户上收回。  
  184. user1尝试直接从user3上回收CREATE VIEW的权限:  
  185. duzz$user1@orcl>revoke create view from user3;  
  186.   
  187. Revoke succeeded.  
  188.   
  189. Elapsed: 00:00:00.01  
  190.   
  191. user3的CREATE VIEW的权限被收回:  
  192. duzz$user3@orcl>select * from session_privs;  
  193.   
  194. PRIVILEGE  
  195. ---------------------------------------------  
  196. CREATE SESSION  
  197. UNLIMITED TABLESPACE  
  198. CREATE TABLE  
  199.   
  200. Elapsed: 00:00:00.01  
  201.   
  202. 测试系统权限是不是也像对象权限一样具有撤销级联性。  
  203. user2再次将CREATE VIEW的权限赋予user3:  
  204. duzz$user2@orcl>grant create view to user3;  
  205.   
  206. Grant succeeded.  
  207.   
  208. Elapsed: 00:00:00.01  
  209.   
  210. user1收回user2的CREATE VIEW的权限:  
  211. duzz$user1@orcl>revoke create view from user2;  
  212.   
  213. Revoke succeeded.  
  214.   
  215. Elapsed: 00:00:00.00  
  216.   
  217. user2的CREATE VIEW的权限被收回:  
  218. duzz$user2@orcl>select * from session_privs;  
  219.   
  220. PRIVILEGE  
  221. ------------------------------------------------  
  222. CREATE SESSION  
  223. UNLIMITED TABLESPACE  
  224. CREATE TABLE  
  225.   
  226. Elapsed: 00:00:00.00  
  227.   
  228. 不过,user3仍然拥有CREATE VIEW的权限:  
  229. duzz$user3@orcl>select * from session_privs;  
  230.   
  231. PRIVILEGE  
  232. -------------------------------------------------  
  233. CREATE SESSION  
  234. UNLIMITED TABLESPACE  
  235. CREATE TABLE  
  236. CREATE VIEW  
  237.   
  238. Elapsed: 00:00:00.00  
  239.   
  240. 对于系统权限,可以从非直接授予的用户收回权限,但是不具备回收级联性。  
  241.   
  242.   
  243. 总结:  
  244. 对于对象
  245. 权限,虽然不能从非直接授予的用户回收,但是回收具有级联性。  
  246. 对于系统权限,可以从非直接授予的用户收回权限,但是不具备回收级联性。  

尊重版权,本文转载地址:
阅读(3048) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~