2015-11-19 48 views
0

我需要一些关于如何保护SQL Server的建议。我想知道保护与SQL Server的连接

  1. 有拒绝用户创建从Excel的ODBC方式连接到它
  2. 有使用私有/公共密钥对服务器进行身份验证
  3. 有一种方法一种方法只允许特定应用程序连接到服务器

我可以在前面添加一个防火墙来过滤IP,但我也希望过滤该应用程序。

有没有办法?

非常感谢您

+0

1.肯定的是,不给他们一个登录。 2.当然,使用ipsec。在所有情况下,硫都是不可能的 –

回答

0

只有2种方式进行身份验证到SQL Server:,您使用Windows凭据

  1. 集成登录,即或
  2. 混合模式 - 可以登录使用Windows登录或者您可以通过名称和密码使用SQL服务器凭证登录。

您可以从文章

CREATE TRIGGER connection_limit_trigger 
ON ALL SERVER WITH EXECUTE AS 'login_test' 
FOR LOGON 
AS 
BEGIN 
IF ORIGINAL_LOGIN()= 'login_test' AND 
    (SELECT COUNT(*) FROM sys.dm_exec_sessions 
      WHERE is_user_process = 1 AND 
       original_login_name = 'login_test') > 3 
    ROLLBACK; 
END; 

通过登录触发器您可以根据需要测试的应用等,如果你想拒绝的登录尝试回滚创建logon trigger,例如。

例如如果app_name <>'MyApp'则回滚连接尝试。

回复:公钥/私钥,如果使用VPN,您将在VPN基础结构中使用公钥/私钥。如果您只是通过标准套接字直接连接到服务器,则只需直接使用SQL Server基础结构,即无法控制公钥/私钥的使用。同样适用于IPsec。

SQL Server对公钥/私钥和对称密钥都有一定的支持,但这并没有与建立连接有直接关系。

你可能想要的是一个encrypted connection,它需要sql为其连接使用SSL(包括pub/priv键)。您将服务器配置为支持加密,并强制它要求SSL,并且只允许SSL连接。

1

不幸的是,没有机制来安全地阻止给定的应用程序来连接你似乎试图的方式。

如果用户具有SQL服务器的有效凭证并且服务器被配置为接受来自客户机的远程连接(即防火墙允许连接等),那么最好的假设是客户机将能够连接到SQL Server成功。

来自Gary的logon trigger想法是通过限制来自单个用户的并发会话数来防止滥用的有效机制,并且验证应用程序名称是保持诚实人员诚实的方式,但应警告应用程序名称可以很容易被欺骗,它不应该被用作强有力的认证/授权机制。

SQL Server可以使用TLS/SSL证书向客户端进行身份验证,但不能验证客户端。尽管它可能不是您的方案的解决方案,但仍建议使用加密连接。

还有一个建议。当你将SQL Server公开给可能具有敌意的IP时,你可以打赌通过猜测SA密码会自动尝试打入它。如果可能,请仅使用集成身份验证(Windows身份验证),如果不是,我强烈建议使用ALTER LOGIN DDL重命名和/或禁用SA帐户。

我希望这个信息帮助,

-Raul加西亚

SQL安全