- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
论BSS系统多数据库环境下数据库链接使用误区
论BSS系统多数据库环境下数据库链接使用误区
摘要:在业务支撑系统中,由于各分系统数据库较多,业务数据交互比较频繁,也经常使用数据库链接的方式来实现业务的处理,并且其中不乏有信赖度较高的数据库之间采用了同义词来方便在业务流程的开发与使用。同时由于复杂环境的存在使得这种方式存在潜在的安全隐患。文中通过实例的展现了安全隐患的产生过程及预防措施。
关键词:数据库链接 同义词 权限
中图分类号:TP311.13 文献标识码:A 文章编号:1007-9416(2012)09-0224-02
在通信运行商的业务支撑系统中,存在着关键业务数据库,非关键业务数据库,测试数据库等几十个数据库,各数据库相互独立,但又存在各种错综复杂的各类业务关系。而这种关系经常使用数据库链接来产生或紧或远的耦合性。本文将采用实例的方式来解述在数据库链接使用中的一个误区,同时也是一个安全隐患。
环境中有3个数据库,testdb(测试数据库),interdb(业务转发数据库),actdb(账务数据库)如图1。
在interdb中创建用户cxlink,并赋予部分权限:
sqlgrant connect,select any table to CXLINK;
在testdb创建到interdb的数据库链接:
sqlcreate public database link INTER_LINK connect to CXLINK identified by *** using interdb;
在interdb与testdb之间存在一个testdb访问interdb的数据库链接,权限仅为select any table。这样,应该认为testdb与ACTDB之间的操作应该影响不大,最多也是读取表信息的权限。
接下来看一下interdb与ACTDB之间的关系,业务转发数据库与账务数据库同为关键业务数据库,之间的关系较为复杂,在开发设计、存储过程调用等密切相关业务处理时,都做了较为密切的耦合,而这个密切的关系又是通过建立数据库链接,使用大量公用同义词的方式建立的。
ACTDB中用户bill被赋予以下权限:
sqlgrant connect,resource,select any table,update any table,insert any table,delete any table to bill;
然后,在interdb数据库建立有指向ACTDB的数据库链接:
sqlcreate public database link ACTDB_LINK connect to bill identified by *** using ACTDB;
同时,存在大量同义???,如:
sqlcreate or replace public synonym tab_act_data for tab_act_data@ACTDB_LINK;
因为有了这个权限较高的数据库链接ACTDB_LINK,和通过这个数据库链接建立的同义词,使得在interdb中可以方便的对ACTDB数据库进行读取与DML操作,但actdb和testdb之间还看不到有什么影响。
testdb现在与interdb和ACTDB之间有什么样的关系呢?下面进行几个操作,看看结果是否在意料之中。
在testdb选取一个用户scott,该用户只有connect角色权限和select any table权限。
操作1,在本数据库testdb下执行对本数据库表的操作:
sqlupdate int.tab_code_name set seq_id=555;
ora-01031:insufficient privileges(权限不足)
操作2,通过数据库链接执行对interdb的表操作:
SQLupdate tab_ineter_data@INTER_LINK set aaa=szx5;
ora-01031:insufficient privileges(权限不足)
操作3,通过数据库链接执行对interdb指向ACTDB的同义词的操作:
SQLupdate tab_act_data@INTER_LINK set change=2006;
65 row updated
突然发现,ACTDB的数据严重的暴露在testdb的一个极低权限的用户下,这个用户对interdb的数据是没有任何DML操作权限的,甚至在testdb都只有很低的权限。这足以让一个开发设计人员惊出一身冷汗,严重的安全隐患,严重的设计缺陷,但好像又不可思议,逻辑上不应出现这种现象。这考验了数据库开发设计人员的长远思维,甚至考验了DBA的洞察力。
来
文档评论(0)