如何禁用破坏性数据库命令?

Rob*_*cks 2 mysql security database datacenter sql-server

大多数系统管理员都了解黑客对他们管理的 SQL 数据库执行 DROP 或 DELETE 等破坏性命令的风险。有没有办法完全禁止执行这些命令,可能是通过配置 MySQL / MS SQL / PostgreSQL,或者修改源代码(如果它们是开源的),删除那些危险的功能。

 Once you have your webapp online,
 would someone with honorable intentions
 ever need to DROP a table?!
Run Code Online (Sandbox Code Playgroud)

这可能是“主要”数据库安全性的圣杯解决方案,而不是四处奔波试图阻止这些完全不必要的命令。当然,在开发或可维护期间,它们可以重新启用,然后在不需要时关闭。

Sam*_*Sam 6

SQL Server 2005 中的 DDL 触发器可以禁止删除或修改表。

如果您将与数据库的交互限制为存储过程,则不必担心这一点。应用程序帐户只能运行存储过程 - 因此不会有 sql 注入的权限。

如果您不能这样做,那么您可以删除删除权限并执行任何类型的 DDL。那总比没有好。但是如果有人想用 Null 更新你的所有数据,他们可以。

如果您有有价值的数据,您拥有一个保持最新的备份,否则您将失去工作/业务。