欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle同义词管理功能给你带来的惊喜与注意问题

程序员文章站 2022-05-22 19:15:36
...

Oracle数据库中提供了同义词管理的功能。同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。

Oracle数据库中提供了同义词管理的功能。同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程、函数、JAVA类、包等等,数据库管理员都可以根据实际情况为他们定义同义词。通过Oracle数据库同义词管理,可以给数据库管理员与应用程序开发人员带来不少惊喜。

  惊喜一:应用程序开发可以不管数据库的具体对象名。

  在应用程序中,要不断的调用Oracle数据库的对象,如表、视图、对象等等。为此,,在管理软件开发的过程中,若应用程序已经完成了某部分功能的开发。此时,数据库管理员若一定需要更改某个数据库对象的命名。那么,此时应用程序也需要调整。这在实际工作中,会很不方便。特别是有些应用程序如果提供了功能自定义平台的话,会非常的麻烦。如在一个ERP软件中,有报表自定义功能。在系统中,原来就有一张供应商产品明细表。但是,用户觉得这张报表信息不够齐全。用户希望能够显示出某个零件所对应的成品。此时,用户可以更改原有的数据库对象来完成这个自定义。但是,这往往不被建议这么做。因为若不小心修改错误,那么就很难再修改回来。所以自定义平台中,若需要对原有报表进行比较大的变更时,往往建议用户另外建立一个视图,来收集自己所需要的信息。若这么做的话,那么用户不仅需要定义数据库对象,而且还要重新调整前台应用程序的报表格式。显然这工作量有多大。

  而现在有了同义词功能的话,这一切都会变得方便。因为前台应用程序可以不用作调整,而只需把数据库对象同义词进行重新定义即可。这既保障了前台应用程序的可恢复性;同时也降低了工作量。这就是Oracle数据库同义词给我们带来的第一个惊喜。

  惊喜二:避免应用程序直接访问数据库对象,提高数据库安全性。

  在开发数据库应用程序的时候,应当普遍遵守的一个规则是尽量避免直接饮用数据库的表、视图、函数或者其他对象。因为这会在很大程度上破坏数据库的安全性。

  如在前台应用程序中直接调用数据库对象,那么攻击者只需要对应用程序所引用的对象进行分析,就可以很容易的了解后台数据库的基本逻辑结构。这显然会为攻击者提供很大的便利。所以,为了保障数据库的安全,前台应用程序最好通过同义词来访问后台数据库。如此的话,攻击者就很难通过前台应用程序的调用,来分析后台数据库的对象,以及对象之间的关系。

  惊喜三:简化数据库对象的访问。

  有时候,我们某个数据库对象的名字可能会很长,如AD_USER_ROLE_NAME_TRL。若每次调用这个数据库对象的时候,都要输入这么长的对象名,肯定会让数据库管理员很头疼。但是,若名字定义的太短了呢,可读性就不好。其他一些数据库,只有牺牲可读性,把数据库对象的名字尽量缩短。

  不过在Oracle数据库中,则可以不用这个烦恼。因为我们可以给这个数据库对象设置一个同义词,就好像别名一样。如此的话,在访问的时候,只需要通过同义词访问即可,而不需要输入这么长的对象名。

Oracle同义词管理功能给你带来的惊喜与注意问题