上篇我们解说了创建用户以及主要的授权问题。以下我们来解说权限包含对象权限和系统权限。
事实上上节课我们解说就是系统的权限。系统权限就是一些创建表了,表空间等等的系统的权限。
1. 系统权限
那么哪些权限是属于系统权限的呢?
上篇文章中我们已经提到了:
2. 对象权限
不同的用户拥有不同的表,那么怎样让不同的用户能够訪问彼此的表,这个权限就涉及到了对象的权限。
同上篇文章。用系统用户登录创建二个用户。而且用创建的用户进行登陆,而且将创建权限以及创建表空间以及创建表的权限授予给他们;那么他们之前是否是能够互相訪问的呢?
不写liyifeng这个用户之前是訪问不了。在oracle中每个表都是属于一个固定的用户。假设直接写表明,系统默认是liyfeng的表。可是这张表在zhonghanliang中是不存在的
即使加上了liyifeng还是不存在。不是不存在,是没有权限,在oracle中各个用户是隔离开的,彼此之前不能訪问数据。
所以这就涉及到了对象之间的授权。
可是系统管理员是有权限对不论什么的表进行訪问的
訪问出现未选定的行。原因在于即使插入了数据可是未进行提交;oracle数据库不同于sql以及mysql,假设不进行commit提交。那么仅仅是存在内存中,并没有写进去数据库。故而我们有的时候查不到数据在于没有将数据进行commit提交。
怎样让用户zhonghanliang能够訪问liyifeng的表,仅仅要让系统管理员把查询的权限授予给zhonghanliang就可以。
? 查询权限
此时zhonghanliang是能够訪问的
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
? 插入权限
此时zhonghanliang用户是能够进行插入的
记得commit提交。此时查询会有两条数据,3是刚刚插入的数据
? 授予全部的权限
? 撤销全部的权限
此外我们还能够设置列的权限;详细的演示我们不再在命令窗体中进行演示了,总结的例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
授权不用提交。可是插入等等须要提交,就是插入。更新和删除,是须要写提交的。
3. 小结
上面讲述了对象之前的彼此的訪问,也就是对象的权限,事实上权限是能够传递的,我们上面的权限都是系统管理员在进行各个用户的授予的,事实上也能够在对象之前进行传递。也就是权限传递。比方说系统管理员把权限给了A,A能够再给B,操作事实上非常easy(授权的时候加上with
admin option就可以),这里不再做具体的阐述,oracle知识非常多,学习仍在继续。