下载并执行SQL脚本 - 有哪些安全问题+解决方案?

时间:2011-09-23 22:15:06

标签: c# .net sql sql-server

我的任务是设计一个.Net应用程序,该应用程序将从特定服务器下载sql脚本文件并对数据库执行该文件。我可以想到一些我想要包含的安全步骤:

  1. 使用与服务器的安全连接(SFTP)
  2. 数据库用户仅具有特定访问权限(在特定表上插入,更新数据)
  3. 我建议在单独的数据库实例中对事务进行沙盒处理。 不幸的是,他们说传输数据集太大了 实用。
  4. 我主要担心的是,不仅允许某人故意破坏大型数据库中的信息,而且理想情况下也是为了防止意外损坏。

    问题:

    1. 我错过了什么吗?是否有任何最佳实践要记住 对于这种事情?
    2. 针对中间人攻击验证服务器证书的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

要点1)

  • 保留审核日志。
  • 在任何可能的程度上,帮助用户创建这些SQL脚本。下拉选择表名,单选按钮选择命令,列选择器等......这有助于防止事故发生。
  • 理想情况下,您可以在任何特定脚本执行之前回滚(想想如果有人质疑,银行必须如何重播您的交易以验证您的帐户余额)。根据更新频率和这些数据的重要性,您可能只需要一些日常备份而不是实际的转录,可重复播放的历史记录。

要点2)

答案 1 :(得分:0)

我会尽可能地限制你的第2点,但显然你的脚本必须被允许做一些事情。因此,您必须信任提供脚本的人。为了确保您执行一个真正来自您信任的人的脚本,我会签署脚本并在执行脚本之前验证签名。所以你可以确定它没有被其他人修改过。