在没有AUTHORIZATION子句

时间:2017-03-01 15:10:15

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

我正在使用带有SSDT 14.0.6121.0的Visual Studio Community 2015。 我创建了SQL Server数据库项目并添加了一个Schema对象。在其中,我写了

    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'或任何其他帐户?

1 个答案:

答案 0 :(得分:1)

否 - 当SSDT需要创建模式时,它会显式添加授权标头并添加拥有它的用户 - 如果没有人拥有它,则将其设置为dbo。 SSDT中没有任何东西可以控制它,它就是为你做的。

通常最好明确这些事情并添加一个拥有它的用户,为什么不指定用户呢?