Azure SQL连接的安全性如何?

时间:2018-10-22 16:41:46

标签: c# azure security networking azure-sql-database

我正在使用WPF应用程序,该应用程序使用EF 6和定义的连接字符串连接到Azure SQL(没有Web服务可以在运行SQL和Web服务器的Azure上节省资金)。

所以我的问题是这样的连接有多安全?

我的连接字符串为Encrypt = True(所以我正在使用SSL)。 我正在使用AD用户凭证连接到数据库本身(AD用户和相应的包含的DB用户的组合,不幸的是,用户名和密码在app的配置文件中)。 我已经在Azure AD中注册了应用程序,并授予其使用此包含的数据库用户匹配的AD用户访问数据库的权限。 (我正在使用此应用程序客户端ID来识别通信来自我的WPF应用程序。)

我在这里看到的唯一威胁是,是否有人可以访问安装了应用程序的计算机,并从配置文件中检索建立连接并进行身份验证所需的所有信息。

但是我在网络方面真的很虚弱,我不知道有人能从窒息的网络流量中获取那些信息。 (我自己尝试过使用Wireshark,但对我来说一切看起来都很乱)

所以有人知道如何以任何方式破坏这种通信吗?

1 个答案:

答案 0 :(得分:3)

SQL Server和SQL Azure支持数据库连接的加密(动态加密)。请注意,SSL是该术语的较旧术语-当前支持与SQL引擎(在任何情况下)进行通信的最佳功能是TLS 1.2。请注意,与SQL Azure对话时,您需要具有正确(最新)的客户端驱动程序版本才能获得此安全性。使用这些驱动程序时,SQL Azure默认情况下会强制执行加密。您可以在这篇文章中阅读其当前状态: https://support.microsoft.com/en-us/help/3135244/tls-1-2-support-for-microsoft-sql-server

关于您的更广泛的问题,编写应用程序(2层或3层)时,您需要考虑很多事情。您应该查看Azure SQL DB上的防火墙以锁定启用的所有路径。您应该使用SQL权限模型来限制每个用户/角色在数据库中进行操作时可以执行的操作。您应该使用audit来跟踪谁(以及从何处)连接到数据库。您应确保使用的是TDE(默认情况下,SQL Azure中的新数据库处于启用状态)。 SQL中还有其他安全功能,它们可能也对您有用(行级安全性,数据屏蔽,始终加密等)。联网部分实际上只是设计安全解决方案的起点。