我正在使用 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/