代码之家  ›  专栏  ›  技术社区  ›  Tom A RRUZ

需要帮助锁定我的SQL Server代码

  •  2
  • Tom A RRUZ  · 技术社区  · 14 年前

    我们希望在我们的软件中构建一种能够徒手构建SQL查询的能力(目前不能用我们的软件这样做),但需要能够将其锁定,这样用户就不能进行任何更改,只能从某些表中选择数据。有没有什么好的指南可以帮助我适当地锁定它(例如,所需的最小权限、建议的禁止关键字等)?或者我只是需要继续浏览网页并吸收我发现的所有SQL Server安全教程(针对系统本身,而不是编程)吗?谢谢。

    4 回复  |  直到 14 年前
        1
  •  4
  •   JonVD    14 年前

    实现这一点的最简单方法是创建一个服务帐户,您将在系统中显式地使用它来进行这种动态类型的查询。其思想是使用您所吸收的所有SQL安全优势,在服务器上创建一个非常受限的低级别服务帐户,并使用该帐户连接到数据库。

    我建议现在就给他们选择访问权限,然后在用户提出请求并且合理的情况下逐步释放控制权。

    This 链接将告诉您如何使用grant关键字为登录提供非常具体的帐户安全性。

    因此,您所需要做的就是在SQL Server中使用基于SQL Server的安全性(而不是Windows)创建一个新帐户。之后,只需使用上面链接中的信息将您希望他们拥有的特定权限添加到该帐户。然后将应用程序中的连接字符串切换到该特定功能的新帐户。

    围绕这一点,任何其他基于编程的安全性都是额外的好处,但仅编程解决方案就不会像数据库级访问限制那样具有防弹性。

        2
  •  4
  •   MikeAinOz    14 年前

    我要在这里买皮带和背带。

    • 确保您的查询工具是证据 针对SQL注入和不需要的 查询。
    • 不要直接和 数据库,使用服务器进程执行 那。
    • 创建一个SQL Server用户 对表具有只读访问权限 必修的。
    • 偏执于安全, 如果你没有,就请一个有经验的人。

    高温高压

        3
  •  3
  •   kutsoff    14 年前

    使用标记“with encryption”为SQL Server创建所有对象(视图、表、过程、函数)。 例如: 使用加密创建过程bbbb 作为 开始 … 结束

    之后,用户将无法查看源代码,也无法对其进行修改。

        4
  •  1
  •   Cade Roux    14 年前

    除了为这些类型的操作专门创建一个最低权限帐户(我更希望我的所有用户帐户只在某些SP上具有Exec,并在某些实用程序视图上选择Exec(这通常是针对初学者的),您还可以使用视图使数据尽可能简单,并形成某些公共连接。在用户必须提供某种过滤器的情况下,您可以使用存储过程或内联表值函数,例如您不希望它们执行SELECT*FROM VIEW的日期范围。