我刚刚在SQL Server Express 2012安装上启用了远程连接。现在我有点担心服务器的安全性,因为允许连接到每个人听起来像是一个很大的安全漏洞。
如果用户尝试向不在我的“允许”列表中的用户进行身份验证,是否可以告诉SQL Server断开连接?如果是这样,我可以将我的监控用户添加到此列表中,而不必担心我的管理帐户可以访问。
答案 0 :(得分:3)
首先,这可能是一个应该在DBA网站上提出的问题。无论如何,您可以设置服务器的安全性,以便只允许某些用户登录。
设置服务器时,将登录添加到服务器级别,然后将数据库级别的用户添加。显然,只有设置的用户才能使用特定的数据库。您可以将用户置于角色中,因此,例如,他们将具有对数据库的只读访问权限。您可以控制有权访问的对象级别。
有一篇关于SQL Server安全性的文章here
话虽如此,有时候,在设置安全性之后,您需要禁止某些用户不允许登录。也许您正在对数据库进行一些重大升级。在这种情况下,一个选项是创建一个登录触发器。
每次用户登录时都会触发登录触发器。您可以创建一个“允许”用户的表,并且在触发器中,如果他们不在表中您进行ROLLBACK,则有效地禁止登录。
Here是有关创建登录触发器的信息
答案 1 :(得分:1)
您应该能够将数据库服务器设置为仅接受来自某些IP地址的连接,而不是接受所有IP地址的连接。我不确定T-SQL语法,但有人肯定会使用正确的语法。
如果你真的是指商业,那就说,你需要使用你提供的证书对客户进行身份验证。请参阅此链接及其链接的各种文章:
答案 2 :(得分:1)
能够远程连接到SQL Server实例并不意味着他们可以登录到它。如果未正确授权,它们仍应由SQL Server登录验证序列启动。
对于“受信任的登录”(授权来自其Windows登录/域帐户),这是静默/不可见的,但它仍然会发生。
如果查看服务器的“安全”文件夹(在SSMS中),您将看到SQL Server的授权登录列表。通过添加或删除这些,您可以控制谁可以在SQL Server上实际创建会话。