搜索
首页 电脑/网络 软件 系统软件

Oracle数据库在方案同义词使用过程中需要注意哪些问题呢?

Oracle数据库在方案同义词使用过程中需要注意哪些问题呢?

全部回答

2018-04-01

45 0
    在方案同义词使用的过程中,还需要注意以下几个问题。 一是要注意使用自己的方案与他人方案的同义词方法有一定的差别。当用户在自己的方案内建立同义词后,用户就有对象的所有权限。
  可以像使用原来的数据库对象那样,使用这个对象的同义词。如查询数据、插入修改删除纪录等等。但是,与公用同义词不同,无论是否给其他用户授予如何使用方案同义词所对应的对象的对象权限,都不能够使用方案同义词,因为同义词是私有的。
    也就是说,如果有一张USER表。用户A虽然有CREATE ANY SYNONYM权限,可以为这个数据库对象建立同义词。但是,其没有这张表的Select权限。则用户A仍然不能够利用这个同义词来访问这个数据库对象。
  否则的话,数据库会提示“表或者视图不存在”。若A用户想要通过同义词访问这个User表的话,则必须拥有这个表的Select等对应的权限,才能够利用同义词对这个表进行对应的操作。  也就是说,通过自己的方案中创建指向其他方案中的对象的方案同义词,只有在被授予了如何访问对象的对象权限之后,才可以按对象权限访问对象。
  另外需要注意,由于方案同义词是私有的,所以,其他用户使用自己方案同义词的话,在任何情况下,即使拥有某个对象的相关权限,也无法进行访问。  这就是方案同义词的私有本质。 二是要注意Oracle数据库中的名称解析顺序。
  如我们通过FROM user 这个子句访问某个表的时候,数据库是如何来查询数据库中是否存在这个对象呢?他是有一定的解析顺序的。当我们书写的程序代码中若引用了一个未限定的数据库对象,如表、视图、存储过程等等,数据库会根据一定的顺序去查询是否有被引用的对象。
    通常情况下,会按如下的顺序进行验证。首先是看看当前用户是否拥有这个对象;其次这个对象名是否是当前用户拥有的一个同义词;最后,才去判断公用同义词的情况。所以,在实际应用中,我们数据库管理员要尽量利用方案同义词,少用公用同义词。
  这对提高数据库的运行效率还是很有帮助的。     三是数据字典视图就是公用同义词的一个好例子。有时候,我们可以借鉴他的配置来管理我们的公用同义词与方案同义词。
  在实际工作中,我们也可以预先把所有的数据库对象名设计好,并配上所有的同义词。然后利用脚本进行一次性生成。若一个个去生成同义词的话,在其工作量还是蛮大的。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报