仅允许特定用户进行远程连接

时间:2013-04-25 17:14:19

标签: sql-server sql-server-2012-express

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

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

3 个答案:

答案 0 :(得分:3)

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

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

有一篇关于SQL Server安全性的文章here

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

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

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

答案 1 :(得分:1)

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

如果你真的是指商业,那就说,你需要使用你提供的证书对客户进行身份验证。请参阅此链接及其链接的各种文章:

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

答案 2 :(得分:1)

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

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

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