无法通过SSMS部署本地数据库至Azure SQL Database的解决方法咨询
解决Azure SQL Database部署时的SQL71627错误
这个错误的核心原因是Azure SQL Database v12不支持本地Windows域登录/用户——它无法直接对接本地Active Directory环境,只能使用Azure AD身份验证或SQL身份验证。以下是可行的解决方法:
删除本地的Windows登录和用户后重新部署
在本地数据库中执行SQL语句移除不兼容的登录和用户:-- 删除数据库级用户 DROP USER [xxx\SSO UAT Administrators]; -- 删除服务器级登录 DROP LOGIN [xxx\SSO UAT Administrators];执行完成后,重新使用SSMS的部署功能生成包并推送至Azure。
部署后在Azure端重新配置权限
若需要保留对应权限体系,部署完成后在Azure SQL Database中创建兼容的身份验证对象:- 用Azure AD身份验证:在Azure门户的SQL服务器中添加对应的Azure AD组/用户作为服务器登录,再在目标数据库中创建关联用户并分配权限。
- 用SQL身份验证:执行以下SQL创建登录和用户:
-- 创建服务器登录 CREATE LOGIN [UATAdmin] WITH PASSWORD = 'YourStrongPasswordHere'; -- 创建数据库用户并关联登录 CREATE USER [UATAdmin] FOR LOGIN [UATAdmin]; -- 分配所需权限(示例为db_owner角色) ALTER ROLE db_owner ADD MEMBER [UATAdmin];
部署时排除不兼容的对象
如果不想修改本地数据库,在SSMS部署向导的「Advanced」设置里,找到「Object Types」选项,取消勾选「Logins」和「Users」中属于Windows身份验证的对象,只部署其他数据库对象,之后再手动在Azure端配置权限。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

