我听说数据库链接不适合组织使用。为什么它不利于安全?
你从哪里听到的?
与任何工具一样,数据库链接也有其使用和误用之处。使用数据库链接本身没有什么不安全的。但是肯定有很多方法可以使用不安全的数据库链接来构建系统。数据库链接允许您将一个数据库连接到另一个数据库。一般来说,您可以定义数据库链接,使其以远程数据库上的特定固定用户的身份连接到远程数据库,也可以定义数据库链接,使其以当前用户的身份连接到远程数据库。这些配置有不同的问题。
如果使用固定用户,则必须注意可以访问本地数据库链接的用户应该具有访问远程数据库用户所具有的任何特权。如果您使用功能相对强大的帐户创建数据库链接,但随后将该链接的访问权限授予权限相对较低的用户,那么肯定会出现安全问题。识别发生这种情况的相关情况也可能具有挑战性,因为没有一个数据库具有全貌。如果数据库A上的用户Bob对几个表具有只读访问权限,但在A上有一个公共数据库链接,该链接以高特权用户的身份连接到数据库B,则有人会危及Bob的帐户以高特权用户的身份在B上执行命令的能力。当然,您可以通过不以高特权用户创建数据库链接来缓解这些问题,在创建公共数据库链接时要小心,当固定用户将拥有您不想授予每个人的特权时创建私有数据库链接,等等。
如果您使用当前用户数据库链接,则数据库A上的用户Bob以Bob的身份连接到数据库B,并且具有Bob在数据库B上的任何特权。通常,这可能更容易保护。至少在无意中做蠢事要困难得多。然而,这种方法的缺点是Bob需要在两个数据库上保持他的密码同步,否则数据库链接将不起作用。这通常涉及开发一些基础设施,以允许Bob在所有数据库上重置他的密码(或使用某种外部身份验证),这需要一些设置和维护工作。有时,它还会限制DBA在混合环境中可以配置的安全措施。例如,当您将数据库A升级到11.2时,在数据库B也进行类似升级之前,您可能不希望启用区分大小写的密码。如果您在许多系统之间有许多数据库链接,这些系统的升级计划非常不同,那么这种事情可能会引起关注。
几年前有一个严重的错误,"System Change Number"可能会被推到数据库上,这将跟随到通过数据库链接连接的任何数据库,导致一连串的故障。根据组织规避风险的程度,保持数据库彼此隔离并减少任何"爆发"的影响可能是一种明智的预防措施。
"这个漏洞的有趣之处在于,当两个数据库通过数据库链接连接时,SCN会同步到最高的SCN。因此,有可能通过数据库链接将数据库增加到接近最大的SCN,这将级联到所有其他相互连接的数据库。结果可能是ORA-600错误,并可能导致SCN较低的数据库上的数据库崩溃。"
https://www.integrigy.com/oracle -安全- blog/critical oracle数据库错误-系统-改变号码- scn - cve - 2012 - 0082