为 SQL Server 2008 R2 帐户设置密码

tco*_*ode -2 authentication sql-server sql-server-2008

我刚刚获得了对安装了 SQL Server 2008 R2 的新 Windows Web Server 2008 R2 的访问权限。当我打开 SQL Server Management Studio 并尝试连接时,它使用 Windows 身份验证进行连接,但是,它不会要求我输入密码,并且成功连接。

我担心(希望不是)不应该访问服务器的人会这样做,然后可以轻松连接到 SQL Server Management Studio,甚至不需要输入密码,然后就可以访问数据库。例如,窃取了 Windows Web Server 登录详细信息的人。他们现在登录到 Web 服务器,并且因为他们使用的登录详细信息标识了该用户使用 Windows 身份验证(无需密码)访问 SQL Server 的权限,因此他们可以访问数据库和数据。

确保任何想要访问我的数据库的人都必须输入密码的最佳方法是什么?

我知道我可以在 SQL Server 中创建用户帐户并将用户分配给特定的数据库(SQL Server 身份验证),但这并不能解决不应该在服务器上的用户的问题,只需选择 Windows 身份验证类型,输入没有密码,并且可以完全访问我的数据库。

有人可以就此提出建议吗?

谢谢各位。

MDM*_*rra 5

如果您担心保护数据库免受访问该框的恶意用户的侵害,那么您无能为力。如果您的服务器上的 Windows 登录被盗用,他们可以轻松地将数据库置于单用户模式并在不需要有效凭据的情况下获取其中的任何内容。这就是为什么您通常会看到 Web 层位于 DMZ 中,而数据库层位于防火墙的受信任端,两者之间仅打开特定端口的场景。

担心让你的盒子打补丁和安全,不要担心如果有人黑了你的盒子并拥有特权凭证,他们可能会看到你的数据库。如果他们已经到了那个时候,他们已经拥有了他们需要的一切。

只需选择 Windows 身份验证类型,不输入密码,即可完全访问我的数据库。

我想你可能误解了这是如何工作的。它不授予任何Windows 用户访问数据库的能力,只有您明确允许的那些。除非已授予用户登录 SQL Server 实例的权限,否则 Windows 用户无法获得它。我假设您可以,因为您的用户帐户已被授予访问权限。

如果要查看所有具有访问权限的登录名(用户、组和 SQL 登录名),您可以运行select loginname from master.dbo.syslogins. 您可以对照应该允许访问的人查看此列表,以验证您没有在不需要的地方意外授予权限。