2012-08-15 40 views
4

我們使用EF4.3和Code First。EF代碼優先的最小數據庫權限DropCreateDatabaseIfModelChanges

我們的DBA熱衷於減少開發人員對開發數據庫的權限。但是,我們已經有很多情況下,我們已經無法創建數據庫之後,當我們調用DropCreateDatabaseIfModelChanges

什麼是用戶所需的最低數據庫權限,以便能夠同時調用DropCreateDatabaseIfModelChangesDropCreateDatabaseAlways它已經下降了嗎?

這些需要不同的權限嗎?

是否有任何文檔可以引用我們的DBA來幫助解釋需要什麼?

回答

5

這兩個初始值設定項都需要刪除和創建數據庫的權限。這些操作需要非常不同的權限:

  • 數據庫可以由其所有者刪除 - 此權限已本地化爲數據庫(SQL Server中的db_owner)。
  • 數據庫只能通過與全球服務器允許的用戶創建的,創建數據庫 - 通常是隻提供給高權限的用戶(在SQL Server dbcreator角色)

你還需要讀Master數據庫訪問。

Btw。如果這與開發環境有關,則應該使用您自己的本地數據庫服務器。

+0

對於您的實際答案+1,但它應該以「No」開頭,因爲對於DropCreateDatabaseIfModelChanges和DropCreateDatabaseAlways,它們都是相同的:都需要drop和create權限。 – hvd 2012-08-15 12:24:36

+0

@hvd:你是對的 - 我將問題轉化爲*「需要什麼權限才能刪除和創建數據庫?」*我將編輯我的答案。 – 2012-08-15 12:26:43