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

Creating schema in VS+SSDT without AUTHORIZATION clause

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

    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 中没有任何东西可以控制它,它只是为你做。

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