首先,我想说的是,我对Azure和Sql Server还是很陌生。
第二,我有一个Excel VBA代码,该代码可从Azure SQL SERVER数据库创建选择查询。
在我的本地PC上,它可以正常工作,但是当我尝试从另一台计算机上使用VBA代码时,出现附件错误。
也许与安全有关?enter image description here
答案 0 :(得分:0)
SQL数据库服务在数据库服务器级别为单个数据库和池数据库创建防火墙。除非您创建IP防火墙规则来打开防火墙,否则此防火墙可防止客户端应用程序连接到服务器或其单个数据库或池化数据库中的任何一个。对于来自Azure外部IP地址的连接,请为您想要能够连接的特定IP地址或地址范围创建防火墙规则。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-server-level-firewall-rule
答案 1 :(得分:0)
感谢您的回答。
我在另一台具有相同IP的PC上测试了VBA代码,但该代码无法正常工作。
我刚刚在azure门户中添加了一个防火墙规则,将防火墙规则设置为0.0.0.0到255.255.255.255只是为了进行测试,但仍然没有运气,目前它仅在一台PC上运行(我使用带有SSMS的PC来污染SQL的PC服务器)。
这是我在ADO中使用的连接字符串,也许是问题所在?
Private Function GetSqlServerConnectionString() As String
GetSqlServerConnectionString = "Driver={SQL Server Native Client 11.0};" _
& "Server=tcp:xxxxxxxx.database.windows.net,1433;" _
& "Database=xxxxx;" _
& "Uid=xxxxxxx;" _
& "Pwd={xxxxxxxx};" _
& "Encrypt=yes;" _
& "Connection Timeout=30;"
End Function
谢谢!