我正在使用带有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'或任何其他帐户?
答案 0 :(得分:1)
否 - 当SSDT需要创建模式时,它会显式添加授权标头并添加拥有它的用户 - 如果没有人拥有它,则将其设置为dbo。 SSDT中没有任何东西可以控制它,它就是为你做的。
通常最好明确这些事情并添加一个拥有它的用户,为什么不指定用户呢?