在没有 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 中没有任何东西可以控制它,它只是为你做。
一般来说,这些东西最好是明确的,并添加一个拥有它的用户,为什么不能指定一个用户?
我正在使用 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 中没有任何东西可以控制它,它只是为你做。
一般来说,这些东西最好是明确的,并添加一个拥有它的用户,为什么不能指定一个用户?