尝试将bacpac从BLOB存储导入SSMS时收到CREATE USER错误 [英] Recieving CREATE USER error when attempt to import BACPAC from blob storage to ssms
本文介绍了尝试将bacpac从BLOB存储导入SSMS时收到CREATE USER错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Export Data-Tier Application...
,并成功地将其作为bacpac文件存储在BLOB容器中。现在,我正在尝试反转并导入Data-Tier Application...
以检查备份进程是否正常运行,但在此过程中收到以下错误:
无法导入包。
错误SQL72014:.NET SqlClient数据提供程序:消息15063,级别16, 状态%1,第1行登录名已在不同的帐户下拥有帐户 用户名。 错误SQL72045:脚本执行错误。执行的脚本:create 用户[用户名]用于登录[用户名];(Microsoft.SqlServer.Dac)
这会导致Importing database
、Importing package schema and data into database
和Updating database
操作失败,并创建空数据库。
我不确定在导入数据库时登录或创建用户在哪里变得相关,您知道发生此错误的原因吗?
推荐答案
在主服务器上运行此查询。它将为您提供存在于服务器级别的登录列表。
SELECT A.name as userName, B.name as login, B.Type_desc, default_database_name, B.*
FROM sys.sysusers A
FULL OUTER JOIN sys.sql_logins B
ON A.sid = B.sid
WHERE islogin = 1 and A.sid is not null
在要导出为bacpac的数据库上运行此命令,以便稍后将其导入到SQL Server实例上:
SELECT DB_NAME(DB_ID()) as DatabaseName, * FROM sys.sysusers
您需要删除您看到的存在于服务器级别(主数据库上)的数据库登录名。之后,尝试将数据库导出为bacpac并将其导入到您的SQL Server实例。
如果您不想删除当前SQL Azure数据库上的那些登录名/用户,请将其复制为新的Azure SQL,删除登录名,将其导出,然后在完成时删除复制的数据库。
如果要在Azure中还原bacpac,请使用门户上的"导入"选项,而不是SSMS。
下载最新的SSMS以获得最佳用户体验。
这篇关于尝试将bacpac从BLOB存储导入SSMS时收到CREATE USER错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文