关闭

Oracle成长点点滴滴(3)— 权限管理

650人阅读 评论(23) 收藏 举报
分类:

  上篇我们讲解了创建用户以及基本的授权问题,下面我们来讲解权限包括对象权限和系统权限。

  其实上节课我们讲解就是系统的权限,系统权限就是一些创建表了,表空间等等的系统的权限。

 1.      系统权限

  那么哪些权限是属于系统权限的呢?

  上篇文章中我们已经提到了:


 2.      对象权限

  不同的用户拥有不同的表,那么如何让不同的用户可以访问彼此的表,这个权限就涉及到了对象的权限。

同上篇文章,用系统用户登录创建二个用户,并且用创建的用户进行登陆,并且将创建权限以及创建表空间以及创建表的权限授予给他们;那么他们之前是否是可以互相访问的呢?


  不写liyifeng这个用户之前是访问不了,在oracle中每一个表都是属于一个固定的用户,如果直接写表明,系统默认是liyfeng的表,但是这张表在zhonghanliang中是不存在的

  即使加上了liyifeng还是不存在,不是不存在,是没有权限,在oracle中各个用户是隔离开的,彼此之前不能访问数据。

所以这就涉及到了对象之间的授权。

  但是系统管理员是有权限对任何的表进行访问的

  访问出现未选定的行,原因在于即使插入了数据但是未进行提交;oracle数据库不同于sql以及mysql,如果不进行commit提交,那么只是存在内存中,并没有写进去数据库。故而我们有的时候查不到数据在于没有将数据进行commit提交。

  

   如何让用户zhonghanliang可以访问liyifeng的表,只要让系统管理员把查询的权限授予给zhonghanliang即可。

  Ø  查询权限

  此时zhonghanliang是可以访问的


  Ø  插入权限

  

  此时zhonghanliang用户是可以进行插入的


  记得commit提交。此时查询会有两条数据,3是刚刚插入的数据


  Ø  授予所有的权限


  Ø  撤销所有的权限

  此外我们还可以设置列的权限;具体的演示我们不再在命令窗口中进行演示了,总结的如下图:


  授权不用提交,但是插入等等需要提交,就是插入,更新和删除,是需要写提交的。

 3.      小结

  上面讲述了对象之前的彼此的访问,也就是对象的权限,其实权限是可以传递的,我们上面的权限都是系统管理员在进行各个用户的授予的,其实也可以在对象之前进行传递,也就是权限传递,比如说系统管理员把权限给了A,A可以再给B,操作其实很简单(授权的时候加上with admin option即可),这里不再做详细的阐述,oracle知识很多,学习仍在继续。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:217490次
    • 积分:8268
    • 等级:
    • 排名:第2525名
    • 原创:220篇
    • 转载:39篇
    • 译文:0篇
    • 评论:1814条
    博客专栏
    EJB

    文章:4篇

    阅读:3193
    hibernate

    文章:8篇

    阅读:7123
    最新评论