Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么数据库链接对安全性有害?_Sql_Database_Oracle_Security_Database Link - Fatal编程技术网

Sql 为什么数据库链接对安全性有害?

Sql 为什么数据库链接对安全性有害?,sql,database,oracle,security,database-link,Sql,Database,Oracle,Security,Database Link,我听说数据库链接不适合组织使用。为什么这对安全有害?你从哪里听到的 与任何工具一样,数据库链接也有其用途和误用。使用数据库链接本身并没有什么不安全之处。但使用不安全的数据库链接构建系统肯定有很多方法 数据库链接允许您将一个数据库连接到另一个数据库。一般来说,您可以定义数据库链接,使其作为远程数据库上的特定固定用户连接到远程数据库,也可以定义数据库链接,使其作为当前用户连接到远程数据库。这些配置有不同的问题 如果使用固定用户,则必须小心,可以访问本地数据库链接的用户应该能够访问远程数据库用户拥有的

我听说数据库链接不适合组织使用。为什么这对安全有害?

你从哪里听到的

与任何工具一样,数据库链接也有其用途和误用。使用数据库链接本身并没有什么不安全之处。但使用不安全的数据库链接构建系统肯定有很多方法

数据库链接允许您将一个数据库连接到另一个数据库。一般来说,您可以定义数据库链接,使其作为远程数据库上的特定固定用户连接到远程数据库,也可以定义数据库链接,使其作为当前用户连接到远程数据库。这些配置有不同的问题

如果使用固定用户,则必须小心,可以访问本地数据库链接的用户应该能够访问远程数据库用户拥有的任何权限。如果您使用一个功能相对强大的帐户创建数据库链接,然后将该链接的访问权授予权限相对较低的用户,那么这肯定是一个安全问题。由于没有一个单一的数据库能够全面了解情况,因此确定发生这种情况的关注点也是一项挑战。如果数据库A上的用户Bob对几个表具有只读访问权限,但A上有一个公共数据库链接作为高度特权用户连接到数据库B,则有人会损害Bob的帐户作为高度特权用户在B上执行命令的能力。当然,您可以通过以下方式来缓解这些问题:不将数据库链接创建为高权限用户,在创建公共数据库链接时要小心,在固定用户将拥有您不想授予所有人的权限时创建私有数据库链接,等等


如果使用当前用户数据库链接,则数据库A上的用户Bob将以Bob的身份连接到数据库B,并具有Bob对数据库B执行的任何权限。通常,这可能更容易保护。至少无意中做一些愚蠢的事情要难得多。然而,这种方法的缺点是Bob需要在两个数据库上保持密码同步,否则数据库链接将无法工作。这通常涉及到开发一点基础设施,允许Bob在所有数据库上重置密码,或者使用某种外部身份验证,这是一项需要设置和维护的工作。有时,它还会限制DBA在混合环境中可以配置的安全措施。例如,当您将数据库A升级到11.2时,您可能不希望启用区分大小写的密码,直到数据库B进行了类似的升级。如果您在不同的升级计划中的许多系统之间有大量数据库链接,那么这类事情可能会引起关注。

您从哪里听说的

与任何工具一样,数据库链接也有其用途和误用。使用数据库链接本身并没有什么不安全之处。但使用不安全的数据库链接构建系统肯定有很多方法

数据库链接允许您将一个数据库连接到另一个数据库。一般来说,您可以定义数据库链接,使其作为远程数据库上的特定固定用户连接到远程数据库,也可以定义数据库链接,使其作为当前用户连接到远程数据库。这些配置有不同的问题

如果使用固定用户,则必须小心,可以访问本地数据库链接的用户应该能够访问远程数据库用户拥有的任何权限。如果您使用一个功能相对强大的帐户创建数据库链接,然后将该链接的访问权授予权限相对较低的用户,那么这肯定是一个安全问题。由于没有一个单一的数据库能够全面了解情况,因此确定发生这种情况的关注点也是一项挑战。如果数据库A上的用户Bob对几个表具有只读访问权限,但A上有一个公共数据库链接作为高度特权用户连接到数据库B,则有人会损害Bob的帐户作为高度特权用户在B上执行命令的能力。当然,您可以通过以下方式来缓解这些问题:不将数据库链接创建为高权限用户,在创建公共数据库链接时要小心,在固定用户将拥有您不想授予所有人的权限时创建私有数据库链接,等等

如果使用当前用户数据库链接,则数据库A上的用户Bob将以Bob的身份连接到数据库B,并具有Bob对数据库B执行的任何权限。通常,这可能更容易保护。至少无意中做一些愚蠢的事情要难得多。然而,这种方法的缺点是Bob需要在两个数据库上保持密码同步,否则数据库链接将无法工作。这通常需要开发一些基础设施
ure允许Bob在所有数据库上重置密码,或者使用某种外部身份验证,这需要进行一些设置和维护工作。有时,它还会限制DBA在混合环境中可以配置的安全措施。例如,当您将数据库A升级到11.2时,您可能不希望启用区分大小写的密码,直到数据库B进行了类似的升级。如果在不同的升级计划中,许多系统之间存在大量的数据库链接,这可能会引起关注。

几年前,存在一个严重的错误,系统更改号可能会在数据库上提前,这将通过数据库链接连接到任何数据库,导致一连串的失败。根据组织规避风险的程度,将数据库与其他数据库隔离并减少任何“爆发”的影响可能是明智的预防措施

此漏洞的有趣之处在于,当两个数据库通过数据库链接连接时,SCN与最高的SCN同步。因此,可以通过数据库链路将数据库增加到接近最大SCN,该链路将级联到所有其他互连数据库。结果可能是ORA-600错误,并可能导致SCN较低的数据库发生数据库崩溃


几年前,有一个严重的错误,系统变更号可以在数据库上提前,这将通过数据库链接连接到任何数据库,导致一连串的故障。根据组织规避风险的程度,将数据库与其他数据库隔离并减少任何“爆发”的影响可能是明智的预防措施

此漏洞的有趣之处在于,当两个数据库通过数据库链接连接时,SCN与最高的SCN同步。因此,可以通过数据库链路将数据库增加到接近最大SCN,该链路将级联到所有其他互连数据库。结果可能是ORA-600错误,并可能导致SCN较低的数据库发生数据库崩溃


什么是数据库链接?@greenapps帮助您从一台服务器连接到另一台服务器数据库链接的最大安全风险是不称职。例如,不合适的设置可能会向所有公共用户授予DBA权限。在一些大型组织中,为了防止更可能由无能而非故意渎职引起的此类情况,全面禁止db链接。结束,讨论结束。非常常见。远程数据库之间的加密数据传输需要考虑。但这同样适用于客户端-服务器连接。什么是数据库链接?@greenapps帮助您从一台服务器连接到另一台服务器。数据库链接的最大安全风险是不称职。例如,不合适的设置可能会向所有公共用户授予DBA权限。在一些大型组织中,为了防止更可能由无能而非故意渎职引起的此类情况,全面禁止db链接。结束,讨论结束。非常常见。远程数据库之间的加密数据传输需要考虑。但这同样适用于客户机-服务器连接。