标签:
上篇我们讲解了创建用户以及基本的授权问题,下面我们来讲解权限包括对象权限和系统权限。
其实上节课我们讲解就是系统的权限,系统权限就是一些创建表了,表空间等等的系统的权限。
那么哪些权限是属于系统权限的呢?
上篇文章中我们已经提到了:
不同的用户拥有不同的表,那么如何让不同的用户可以访问彼此的表,这个权限就涉及到了对象的权限。
同上篇文章,用系统用户登录创建二个用户,并且用创建的用户进行登陆,并且将创建权限以及创建表空间以及创建表的权限授予给他们;那么他们之前是否是可以互相访问的呢?
不写liyifeng这个用户之前是访问不了,在oracle中每一个表都是属于一个固定的用户,如果直接写表明,系统默认是liyfeng的表,但是这张表在zhonghanliang中是不存在的
即使加上了liyifeng还是不存在,不是不存在,是没有权限,在oracle中各个用户是隔离开的,彼此之前不能访问数据。
所以这就涉及到了对象之间的授权。
但是系统管理员是有权限对任何的表进行访问的
访问出现未选定的行,原因在于即使插入了数据但是未进行提交;oracle数据库不同于sql以及mysql,如果不进行commit提交,那么只是存在内存中,并没有写进去数据库。故而我们有的时候查不到数据在于没有将数据进行commit提交。
如何让用户zhonghanliang可以访问liyifeng的表,只要让系统管理员把查询的权限授予给zhonghanliang即可。
此时zhonghanliang是可以访问的
此时zhonghanliang用户是可以进行插入的
记得commit提交。此时查询会有两条数据,3是刚刚插入的数据
此外我们还可以设置列的权限;具体的演示我们不再在命令窗口中进行演示了,总结的如下图:
授权不用提交,但是插入等等需要提交,就是插入,更新和删除,是需要写提交的。
上面讲述了对象之前的彼此的访问,也就是对象的权限,其实权限是可以传递的,我们上面的权限都是系统管理员在进行各个用户的授予的,其实也可以在对象之前进行传递,也就是权限传递,比如说系统管理员把权限给了A,A可以再给B,操作其实很简单(授权的时候加上with admin option即可),这里不再做详细的阐述,oracle知识很多,学习仍在继续。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/u010955843/article/details/46802993