2017-03-01 43 views
0

我正在使用SSDT 14.0.6121.0的Visual Studio Community 2015。 我創建了SQL Server數據庫項目並添加了一個Schema對象。在這裏面,我寫了在沒有AUTHORIZATION子句的情況下在VS + SSDT中創建模式

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,我不想授權是「DBO」或任何其他帳戶?

回答

1

否 - 當SSDT需要創建模式時,它會顯式添加授權標頭並添加擁有它的用戶 - 如果沒有人擁有它,則將其作爲dbo。 SSDT沒有任何東西可以控制這一點,它只是爲你做。

通常最好明確這些事情並添加一個擁有它的用戶,爲什麼你不能指定一個用戶?

+0

該軟件包將從安裝程序運行,因此我不知道實際的用戶名並希望它當前正在執行用戶。感謝您的回答。 – Marvin

相關問題