相关疑难解决方法(0)

DacPac在导出或导入时排除用户和登录

我正在做一些自动化,并在将一些10-15个旧的,古怪的脚本重写为一个单一且简单的单元,它可以:

  1. 在生产环境中从MsSql2012导出数据库方案
  2. 在开发环境中将数据库方案导入MsSql2012

我这样做使用Microsoft.SqlServer.Dac我可以导出/导入dac包.

它工作得很好:),但在完成所有我的TDD和测试之后,现在是真实的时间了,结果我完全错过了我的工作中有2个域.

这意味着当我在开发环境中导入dacpac时出现错误,因为我们的2个域没有完全双向信任,当然数据库也有来自两个域的用户.特别是生产域用户.我可以看到3个可行的解决方案

  1. 在环境之间获得完全信任.但由于我的工作实施了高水平的安全性,因此不会发生这种情况.
  2. 在没有用户的情况下导入dacpac.
  3. 没有用户导出到dacpac.

我已经阅读了文档(当然这是模糊的),试图找到一组可以实现2)或3)的选项.我已经测试了很多组合,但没有一个可以工作.dac pac导入不断尝试创建用户并失败,因为生成用户无法在开发环境中进行验证.

我正在使用Deploy和Extract导出/导入.可以在这里找到不同的选项:

  1. 提取:http://technet.microsoft.com/en-us/library/microsoft.sqlserver.dac.dacextractoptions.aspx
  2. 部署:http://technet.microsoft.com/en-us/library/microsoft.sqlserver.dac.dacdeployoptions.aspx

没有组合我找到了作品,我甚至阅读过帖子,暗示它是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)

c# database sql-server cross-domain dacpac

12
推荐指数
2
解决办法
7154
查看次数

如何在Visual Studio中开发t-sql?

我们正在使用带有SSDT的Visual Studio 2013主要用于版本化t-sql代码,因此sql正在开发服务器上开发,然后我们使用模式比较将脚本传输到visual studio(并检查Git).在部署之前(我们目前也使用模式比较)我们必须替换数据库和服务器引用(使用[$(数据库)]等).如果我们更改开发服务器中的代码并再次进行比较,则此类SQLCMD变量将再次丢失.(我希望模式比较足够聪明以保留SQLCMD变量,但我发现无法实现这一点).

合乎逻辑的步骤是从一开始就在visual studio中开发sql.但到目前为止,很难说服团队中的任何人这样做.一个人可以编写sql并在VS中执行它,没问题.也可以切换到SQLCMD模式并执行.但是当您在VS中创建例如一个视图时,您必须写下一个create语句,当然这可以执行一次,但在更改视图并再次执行create语句时会产生错误.

所以我的问题是,是否有人提供了一些关于如何在Visual Studio中进行数据库开发的基本技巧.我们能够获得数据库引用和所有这些,但不是开发过程.

sql-server visual-studio-2013 sql-server-data-tools

2
推荐指数
1
解决办法
1575
查看次数