我正在爲我的公司進行短期災難恢復計劃工作,並且我們計劃在複製報告服務器用作溫備件以防我們的主事務服務器死亡。遠程授予對SQL數據庫角色的權限
我們的Web應用程序可以寫入該事務服務器,但只有SQL角色給定的某些權限。 (web應用程序)我想給我們一種更新這個角色的方法,它也更新了與其他服務器上存在的角色相同的角色。這樣,如果我們故障轉移到另一臺服務器,我們的Web應用程序角色相當接近,即使不完全相同。 (我真的不擔心有人直接更新它)
所以,我有一個MakeWebWriteable
程序,應該生成和執行一些代碼,如下所示。除了下面的內容顯然是行不通的。我不知道如何引用角色並在遠程服務器上進行更新。我想過使用exec (@sql) at [reporting\server]
,但我不確定如何引用某個數據庫的角色對象。
grant insert, update, delete on dbo.TableName to webapplication
grant insert, update, delete on [reporting\server].DBName.dbo.TableName to [reporting\server].DBName.dbo.webapplication
我該怎麼做,或者有沒有更好的點子? (即複製)
編輯1:我們一般寫遷移爲SQL腳本,提交那些SVN,並有我們的數據庫有同步腳本更新 - 有點像什麼回報率的過程中,只有不模型 - > SQL轉換。理想情況下,如果我們希望表可以寫入網頁,那麼我們只需在遷移結束處添加一行即可。
-- Code to create NewTable...
if object_id('SetWebWriteable') is not null
exec SetWebWriteable @tableName = 'NewTable'
這樣,我們的開發人員機器上就沒有任何反應,但在我們的測試和生產環境中,會發生正確的操作。如果角色可以自動複製,那麼我們當然不需要這樣做。
我已經編輯我的問題,以解決您的問題。我們希望基本上保持SQL腳本的侷限性,並且這是通過遷移腳本半手動觸發的。 – 2011-03-14 21:46:02