2011-07-28 66 views
1

我真的很希望有人對此有所瞭解。只是爲了澄清我在前面談論的內容;當提到模式時,我指的是用於所有權分離的數據庫對象,而不是數據庫創建模式。SQL Server 2008架構分離 - 架構權限和數據庫角色

我們使用Sql Server Schema對象將表分成整體,每個組屬於一個應用程序。每個應用程序也有自己的數據庫登錄。我剛開始介紹數據庫角色,以便完全自動化部署以測試和分級環境。我們正在使用xSQL Object比較引擎。批處理文件每晚運行以執行比較並生成腳本更改文件。這可以隨着代碼更改而應用於目標數據庫。

我遇到的問題是folows。考慮下面的數據庫結構:

數據庫:

  • 安全/架構:
    • 核心
      • CoreRole(所有者)
      • SchemaARole(選擇,刪除,更新)
      • SchemaBRole (選擇)
    • SchemaA
      • SchemaARole(所有者)
    • SchemaB
      • SchemaBRole(所有者)
  • 安全/角色/數據庫角色:
    • CoreRole
      • core_login
    • SchemaARole
      • LOGIN_A
    • SchemaBRole
      • LOGIN_B

設置對於使用這些設置的三個應用程序來說非常合適。唯一的問題是如何創建/生成一個腳本來創建模式 - >角色權限?所有者角色得到正確應用。例如,模式Core獲取所有者角色CoreRole(如預期的那樣)。但SchemaARole和SchemaBRole不適用。

我無法找到在xSQL對象中打開此選項的選項,也不存在用於從SQL Server管理工作室編寫腳本的選項。好吧,至少我找不到它。

我想做的不可能嗎? SQL Server如何管理這種關係呢?

回答

0

我剛剛踢了SQL Profiler &被困我認爲你的場景是什麼。試試這個:

GRANT SELECT ON [Core].[TestTable] TO [CoreRole] 
GRANT DELETE ON [Core].[TestTable] TO [CoreRole] 
GRANT UPDATE ON [Core].[TestTable] TO [CoreRole] 
+0

謝謝。自從我發佈這個問題後,我找到了解決方案,並且可以確認發佈的腳本選項是什麼。 –