1

我刚刚在我的 SQL Server Express 2012 安装上启用了远程连接。现在我有点担心服务器的安全性,因为允许连接到每个人听起来对我来说是一个很大的安全漏洞。

如果用户尝试与不在我的“允许”列表中的用户进行身份验证,是否可以告诉 SQL Server 断开连接?如果是这样,我可以将我的监控用户添加到此列表中,而不必担心我的管理帐户可以访问。

4

3 回答 3

3

首先,这大概是DBA网站应该问的一个问题。无论如何,您可以设置服务器的安全性,以便只允许某些用户登录。

设置服务器时,将登录添加到服务器级别,然后将用户添加到数据库级别。显然,只有设置好的用户才能使用特定的数据库。您可以将用户置于角色中,例如,他们将对数据库具有只读访问权限。您可以控制到对象级别,谁可以访问什么。

这里有一篇关于 SQL Server 安全性的好文章

话虽如此,有时,在您设置了安全性之后,您需要禁止某些用户不允许登录。也许您正在对数据库进行一些重大升级。在这种情况下,一种选择是创建登录触发器。

每次用户登录时都会触发登录触发器。您可以创建一个“允许”用户表,并且在触发器中,如果他们不在您 ROLLBACK 的表中,则有效地禁止登录。

以下是有关创建登录触发器的信息

于 2013-04-25T17:36:12.153 回答
1

能够远程连接到 SQL Server 实例并不意味着他们可以登录到它。如果它们未得到正确授权,它们仍应由 SQL Server 登录身份验证序列启动。

这对于“受信任的登录”(授权来自他们的 Windows 登录/域帐户)是静默/不可见的,但它仍然会发生。

如果您查看服务器的“安全”文件夹(在 SSMS 中),您将看到 SQL Server 的授权登录列表。通过添加或删除这些,您可以控制谁可以在您的 SQL Server 上实际创建会话。

于 2013-04-25T17:37:08.877 回答
1

您应该能够将 db 服务器设置为仅接受来自某些 IP 地址的连接,而不是接受所有 IP 地址的连接。我不确定 T-SQL 语法,但肯定有人会加入正确的语法。

话虽如此,如果您真的是认真的,那么您将希望使用您提供给他们的证书对客户进行身份验证。请参阅此及其链接到的各种文章:

https://security.stackexchange.com/questions/14589/advantages-of-client-certificates-for-client-authentication

于 2013-04-25T17:28:20.773 回答