
安全技术
浅谈分布式数据库跨库操作的安全设计
梁伟
(中国联通河南省分公司河南郑州450003)
数事员本与质用
摘要:在通信帐务系统中,由于分布式式数据库的使用,从而存在许多的跨库操作和应用的跨库设计。但是在跨序操作带来方使的同时,由于设计的不合理,许多情况电会给数据库的安全管理带来隐患。本文从实际应用中用到较多的数据库链接、同义词、存储过程的跨库操作简单阐速跨库设计时应注意的安全事项。
关键词:数据库链接同义词存储过程权限
中图分类号:TP311.13
文献标识码:A
文章编号:1007-9416(2012)09-0186-02
在现在通信行业业务支撑系统建设中,由于数据库数据量的巨大,通常会根据不同业务模块建设成分布式数据库。如将计费账务系统中数据可以接清单查询提供、前台账务营收、计费处理、报表统计等划分,分布到不同的数据库实例,这样,通过模块化的数据分流,减轻了单一数据库的资源压力,均衡了负载,提高了各应用模块程序的效能。
同时,各数据库实例作为一个整体,存在一定的揭合性,分布的
数据库之间的存在不同程度的相互沟通。如统计数据需要采集清单数据、营收账务数据,计费处理时需要访问客户资料数据等。这些操作如果通过数据库之间进行操作就涉及到跨库操作的问题。
作为一个整体系统中的分布式数据库之间存在跨库操作是非常普通的,尤其是数据库链接、同义词和存储过程的跨库操作在应用程序中广泛使用,这些给应用程序的设计实现带来了极大的方便,同时,从安全的角度也带来了一些间题。下面从安全管理的角度针对跨库操作进行一些讨论。
1、数据库链接(DATABASELINK)
数据库链接是在分布式环境下,为了访问远程数据库而创建的数据通信链路,通过数据库链接隐藏了对远程数据库访问的复杂性。数据库之间通过数据库链接的创建,使得登陆到本地数据库上的用户可以访问远程数据库上的数据或进行其他跨库操作。可以说,罚库操作实现的基础就是数据库链接的使用。
创建数据库链接的语句如下:
CREATE
DATABASE LINK 链接名 CON-
NECTTO账户IDENTIFIEDBY 日令
USING服务名,
数据库链接建立测试成功后,就可以采用以下形式来访问远程用户的表:
表名@数据库链接名
例如:在局域网上创建和使用数据库链接。
首先:在本地数据库网络服务名配置文件(tnsnames.ora)中添加远端数据库的服务名,假定服务名为remotedb
然后:登录本地数据库,执行创建数据库链接命令
CREATE DATABASE LINK link_rmtI CON-NECT TO scott IDENTIFIED BY tiger USING 'remotedb',
测试是否可以使用: SELECT sysdate
FROMdual@link_rmtl
如果正常返回远端数据库的系统时间,则数据库链接正常建立。
这里有两个问题需要注意,一是远端数据库scott帐户的权限, 186
二是public参数。
建立数据库链接用到的远端数据库帐户的权限对跨库操作有很大的影响,从一定意义上说,跨库操作的安全级别就是由这个帐户所决定的。本地用户在本地数据库可以进行的操作,只要这个数据库链接用户拥有这些权限,本地用户同样可以用于远端数据库进行操作(通过数据库链接是不可以进行DDL操作的,如create,drop、 truncate等)。本例中,如本地用户拥有resources权限,在本地数据库可以对自已的对象进行DML(update,delete,insert)操作。在数据库链接用户scott具有updateanytables权限的情况下,本地用户是可以对远端数据库进行updateanytables操作的,如
UPDATE scott2.test_table@link_rmt1 SET state='YES", 即在本地数据库只能对自已所属对象进行DML操作的权限限
制,在远端数据库则没有这个限制了。
其次,在对public参数使用上,也是要比较注意的,Public参数在数据库中处于较低的级别,几乎不可能对登陆数据库用户进行限制访间。建立了public数据库链接,就等于承认在数据库链接的权限范围内,远端数据库对本地数据库所有用户都是开放的。
再者,在测试库等管理相对开放的数据库用权限较大的帐户建立了数据库链接,必将成为远端数据库管理的安全漏洞。
所以,在进行数据库设计时,应该严格控止public参数的数据库链接的建立,其次,建立的数据库链接尽量避免使用具有DML权限的用户,然后,对数据库中的密码定期进行修改也可起到一定修补安全漏洞的效果。
2、同义词(SYNONYM)
同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访间的安全性。在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程、函数,JAVA类、包等,都可以根据实际情况为他们定义同义词。同义词可以分两类,分别是公用同义词与私有同义词。公用同义调由一个特殊的用户组Public所拥有,数据库中所有的用户都可以使用公用同义词。私有同义词是由创建他的用户或者方案所有。
使用同义词有以下优点,可以实现在不同的数据库用户之间的无缝交互,不同用户在访间时都使用同一个名称,可以创建指向远确数据库的对象,简化了远程数据库的对象的访问,可以为不存在的对象创建同义词,为应用开发提供了方便。
创建同义词语句:
CREATE OR REPLACE SYNONYM 同义词
...下转第188页