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