2017-10-13 151 views
2

我试图使用SSDT发布到Azure中的SQL Server数据库。当我这样做,我看到下面的错误:SSDT未能发布:“无法连接到主服务器或目标服务器”

Unable to connect to master or target server 'DATABASE_NAME'. You must have a user with the same password in master or target server 'DATABASE_NAME'.

忽略了一个事实,它的上市数据库名称错误的服务器名称,我不知道如何解决它。当我指定目标数据库时,我可以成功测试连接。我也可以通过SSMS将相同的信用连接到数据库。

在研究了错误之后,似乎Azure中的数据库的防火墙通常不包含您发布的计算机的IP地址。它不仅包含我的IP,而且还添加了另一个防火墙规则,以允许每个IP(0.0.0.0-255.255.255.255)消除防火墙作为此问题的潜在原因。

任何想法?

+0

不建议在防火墙规则中指定每个IP –

+0

@VenkataramanR显然。作为一个可能的原因,我正在运行它。 – im1dermike

回答

5

这是一个已知问题。这是由于新创建的SQL Azure数据库具有新的兼容级别140。已将此问题记录在here中,并将SSDT从here更新为最新版本可能会解决此问题。

或者,您可以将数据库的兼容级别更改为130

ALTER DATABASE database_name 
SET COMPATIBILITY_LEVEL = 130; 

希望这有助于。

-2

尝试使用Sql Server Management Studio连接到SQL Azure数据库,并且在管理工作室中列出的IP是正确的IP地址。尝试添加到SQL Azure防火墙规则。 Sql Azure门户的防火墙页面中列出的IP地址不准确。

0

尝试通过SSMS从本地SQL Server部署数据库到Azure SQL数据库时遇到同样的问题。

试图将源数据库的兼容级别更改为130,仍然得到相同的错误。

试图添加相同的用户登录到主数据库,没有帮助。

最终,开始寻找其他方法。使用数据迁移助理成功,如https://docs.microsoft.com/en-us/azure/sql-database/sql-database-cloud-migrate中的说明。