我正在做一些自动化,并在将一些10-15个旧的,古怪的脚本重写为一个单一且简单的单元,它可以:
我这样做使用Microsoft.SqlServer.Dac我可以导出/导入dac包.
它工作得很好:),但在完成所有我的TDD和测试之后,现在是真实的时间了,结果我完全错过了我的工作中有2个域.
这意味着当我在开发环境中导入dacpac时出现错误,因为我们的2个域没有完全双向信任,当然数据库也有来自两个域的用户.特别是生产域用户.我可以看到3个可行的解决方案
我已经阅读了文档(当然这是模糊的),试图找到一组可以实现2)或3)的选项.我已经测试了很多组合,但没有一个可以工作.dac pac导入不断尝试创建用户并失败,因为生成用户无法在开发环境中进行验证.
我正在使用Deploy和Extract导出/导入.可以在这里找到不同的选项:
没有组合我找到了作品,我甚至阅读过帖子,暗示它是DacPac中的一个错误.但我不确定.我现在正在研究的最后一个选项是使用GenerateScript方法,希望能够强制排除用户/登录,但我担心它也无法正常工作.见(http://technet.microsoft.com/en-us/library/hh753526.aspx).
问题: 如何在导出或导入中从我的dacpac中排除用户/登录?
UPDATE
当前提取设置:
IgnoreUserLoginMappings = true,
VerifyExtraction = false,
Run Code Online (Sandbox Code Playgroud)
当前部署设置:
CreateNewDatabase = true,
DeployDatabaseInSingleUserMode = true,
DisableAndReenableDdlTriggers = true,
IgnoreUserSettingsObjects = true,
Run Code Online (Sandbox Code Playgroud)
更新
到目前为止,一切都指向一个丑陋的解决方
I can generate a deploy script using DacServices.
Then i can parse the script (Remove logins etc).
Then write the result to a file.
And then call SQLCMD in …Run Code Online (Sandbox Code Playgroud) 我尝试通过导出数据层应用程序(.bacpac文件)从Amazon RDS实例迁移SQL Server数据库到其他实例,但导入未成功.所以现在我想删除数据库(这是空的),当我尝试:
DROP DATABASE mydatabase;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无法删除数据库'mydatabase',因为它不存在或您没有权限
一些背景:
CONNECT,SHOWPLAN,VIEW DATABASE STATE,VIEW DEFINITION(不知道为什么还是这怎么可能).任何帮助是极大的赞赏!