gpt4 book ai didi

sql-server - SQL Server Windows 身份验证安全

转载 作者:行者123 更新时间:2023-12-03 23:10:52 25 4
gpt4 key购买 nike

我们有一个应用程序使用 Windows 身份验证来对数据库用户进行身份验证,并且 SQL Server 用户帐户需要对数据库表具有一定的读/写访问权限。

问题是用户随后可以安装 SQL Server Management Studio 并可能以不应该使用的方式使用数据库,这不是我想要的。

我读到的所有内容都说使用集成身份验证更安全,但目前,任何用户都可以使用 Management Studio 或 Access/Excel 连接到数据库。

我已阅读问题 SQL Server Authentication or Integrated Security? ,这提出了一些解决方法,但我真的没有像重构所有存储过程等那样彻底改变应用程序的选择。所以我希望可能有另一种选择?

谢谢,

妮可

最佳答案

Everything that I have read says that using integrated authentication is more secure

--> 它在某种程度上更安全​​,因为它更难获得密码。

如果您使用 SQL Server 身份验证,则连接字符串包含用户和密码。如果你知道连接字符串在哪里(通常在配置文件中),你可以打开它并查看用户和密码。
另一方面,如果您使用 Windows 身份验证,连接字符串只会显示“Integrated Security=True”,然后您使用您的 Windows 帐户连接到服务器,而实际密码深埋在 Windows 的内部,更难找回。

当然,Windows 身份验证的一大缺点是,如果您的用户需要对您的应用程序的某个表的写入权限,这意味着他们也可以使用任何其他应用程序写入同一个表。

有一些解决方法,但没有一个是 Elixir :

如果您的应用只需要数据库的某些表,您可以只授予对这些表的权限。所以至少,用户不能在所有其他表中做事

如果根本不允许用户从您的应用程序外部访问任何表,不幸的是您只能做两件事:

  • 将您的应用更改为 SQL 身份验证并删除 Windows 用户的所有权限
    (你也可以使用代理服务 like Will Hughes suggested ,但是当应用程序直接访问数据库时效果是一样的......关键是你的用户的 Windows 帐户不再有任何权限!)
  • 为您的应用可以对数据库执行的操作创建 View 和存储过程(如果它们尚不存在)。授予用户使用这些权限,并删除对真实表的权限。
    --> 用户可以直接使用其他工具访问 View 和 SP(即使他们对基础表没有任何权限......对 View 和 SP 的权限就足够了),但他们不能做任何事情他们也不能在你的应用程序中做。

关于sql-server - SQL Server Windows 身份验证安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4606338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com