我有一个SQL Azure数据库,并在其上启用了审核。根据门户网站,审计需要使用安全性启用的连接字符串,因此将数据库门户上的Security Enabled Access参数设置为“Required”,以便没有带有非安全连接字符串的应用程序进入我的数据库。
当我尝试使用非安全连接字符串服务器名称(例如MyAzureServer.database.windows.net
)从SSMS连接时,我收到一条错误消息,指出只允许与安全连接字符串的连接,这是我的预期
但是我的.NET应用程序使用如下所示的非安全连接字符串工作正常,没有错误。我还可以看到审计日志中有一条登录成功的记录
Server=tcp:MyDBServer.database.windows.net,1433;
Database=DemoDB;
User ID=Srisail@MyDBServer;
Password=password123%;
Encrypt=True;
TrustServerCertificate=False;
Connection Timeout=30;
我的问题是我的.NET应用程序如何使用非安全连接字符串能够登录我的Azure SQL Server,尽管我强制我的服务器只接受带有安全连接字符串的连接。
此外,我不确定我是否完全理解安全和非安全连接字符串,除非您在服务器名称中包含文本secure MyDBServer.secure.database.windows.net
。我想更多地了解这一点。
总是任何帮助都非常感激。
答案 0 :(得分:15)
只需更改
Server=tcp:MyDBServer.database.windows.net,1433;Database=DemoDB;User ID=Srisail@MyDBServer;Password=password123%;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
要
Server=tcp:MyDBServer.database.secure.windows.net,1433;Database=DemoDB;User ID=Srisail@MyDBServer;Password=password123%;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
答案 1 :(得分:1)
您的连接字符串包含Encrypt=True;TrustServerCertificate=False
,因此有资格成为安全连接。
客户端和服务器之间的连接将进行SSL加密,证书将被验证。
https://msdn.microsoft.com/en-us/library/azure/ff394108.aspx#encryption
答案 2 :(得分:1)
我很高兴地通知您,上周我们改进了DB“必需”模式的行为,这消除了使用安全连接字符串来使用审计或数据屏蔽的需要。
这意味着在将数据库门户上的Security Enabled Access参数设置为“Required”后,SSMS或.NET应用程序尝试使用标准连接字符串连接数据库将正常工作,没有错误,
在将数据库门户上的Security Enabled Access参数设置为“Required?”之后,您可以尝试使用标准连接字符串从SSMS连接吗?