visual-studio - 在没有 AUTHORIZATION 子句的 VS+SSDT 中创建模式

标签 visual-studio sql-server-data-tools dacpac

我正在使用 Visual Studio Community 2015 和 SSDT 14.0.6121.0。 我创建了 SQL Server 数据库项目并添加了一个架构对象。在里面,我写了

    CREATE SCHEMA [MySchema] 

并创建了项目快照。但是,当我部署此 DACPAC(使用 DacFX)时,我发现实际的部署语句是

    CREATE SCHEMA [MySchema] AUTHORIZATION='dbo' 

它总是'dbo',无论实际执行帐户如何,并且在某些情况下会由于缺少权限而导致部署失败。

在DACPAC中,代码如下:

    <Element Type="SqlSchema" Name="[MySchema]">
        <Relationship Name="Authorizer">
            <Entry>
                <References ExternalSource="BuiltIns" Name="[dbo]" />
            </Entry>
        </Relationship>
    </Element>

有没有办法告诉 SSDT,我不希望 AUTHORIZATION 是“dbo”或任何其他帐户?

最佳答案

否 - 当 SSDT 需要创建模式时,它会显式添加授权 header 并添加拥有它的用户 - 如果没有人拥有它,那么它会将其作为 dbo。 SSDT 中没有任何东西可以控制它,它只是为您做这件事。

一般情况下最好明确说明这些东西并添加一个拥有它的用户,为什么不能指定一个用户呢?

关于visual-studio - 在没有 AUTHORIZATION 子句的 VS+SSDT 中创建模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535309/

相关文章:

c++ - 无法在 visual studio 2017 (Native c++) 中禁用数据断点

visual-studio-2012 - 为什么我的 SqlPackage DeployReport 返回空报告?

sql-server - 如何将 DACPAC 部署到事务复制数据库

visual-studio - 是否可以在Visual Studio或其他IDE中进行设置?

c# - 如何删除因意外双击按钮而生成的函数?

c# - 以编程方式监视在 visual studio 中打开了哪个选项卡

sql-server - 如何将多个SSIS包自动导入到Data Tools Solution?

c# - 如何从代码发布 SSDT 数据库

azure - SqlAzureDacpacDeployment - 用户 '<token-identified principal>' 登录失败。 token 已过期

sql-server - SqlPackage.exe 需要很长时间