我正在尝试将.bacpac
部署到我的Azure订阅,数据库中有一些Azure AD用户。我可以使用SSMS生成.bacpac
,但是当我在Azure上部署复制的数据库时,我得到了以下错误:
无法导入包。
错误SQL 72014:.Net SqlClient数据提供程序:
消息15419,第16层,状态1,第1行
提供的参数sid应为二进制(16)。
错误SQL 72045:脚本执行错误。执行的脚本:
CREATE USER [ADUser]
WITH SID =,TYPE = E;
(Microsoft.SqlServer.Dac)
**问题:**如果我的数据库中有Azure AD的用户,如何部署.bacpac
?
我做了一些测试来避免这个错误,我可以部署一个.bacpac
文件与SQL Server用户,问题只有当数据库有Azure用户时才会出现。
2条答案
按热度按时间r6hnlfcb1#
同意**@AlwaysLearning**,根据本MS Document
使用SID创建用户仅适用于包含数据库中具有密码(SQL Server身份验证)的用户。
此外,你可以看到下面的错误我们不能使用SID与外部提供程序,它只适用于SQL用户密码。
您可以使用下面的命令在您的数据库中创建外部用户。
然后尝试在Azure SQL中部署数据库。
vmdwslir2#
同意@pratik-lad和@AlwaysLearning,添加用户登录名,然后您可以部署
.bacpac
文件,但在我的情况下,我不希望Azure用户在新数据库中,所以我使用SQL Package为此编写了一个脚本。首先提取带有
/p:ExtractAllTableData=True
标志的.dacpac
文件然后,您可以使用此标志
ExcludeObjectTypes="Users;Logins;RoleMembership;Permissions;DatabaseRoles"
发布数据库