2010-05-23 40 views
4

經過幾次Google搜索並快速查看這裏的問題之後,我似乎無法找到我認爲是SQL Server權限的菜譜答案。爲開發人員提供的適當的SQL Server權限

正如我經常在小商店看到的,大多數開發人員在開發時都使用SQL Server的管理員帳戶。我想設置角色和權限,我可以分配給開發人員,這樣我們就可以完成工作,但也可以通過所需的最低權限來完成。任何人都可以提供什麼SQL Server權限分配的建議?

組件:

  • SQL Server 2008的
  • SQL Server報表服務(SSRS)2008
  • SQL Server集成服務(SSIS)2008

平臺:

  • 生產
  • 分期/ QA
  • 開發/集成

我們正在運行,因爲一些遺留應用程序和網絡的「混合模式」的安全性,但正在向Windows驗證。我不確定這是否真的影響了設置的角色。

我打算設置開發人員將Prod和Staging/QA DB作爲只讀的訪問權限。但是,我仍然希望開發人員保留運行分析的能力。

我們需要具有更高特權級別的部署帳戶。我們正在試圖弄清楚SSIS包部署需要什麼特權。

在開發服務器中,開發人員需要廣泛的權限。但是,我不確定只是讓他們成爲所有管理員真的是最好的選擇。

很難相信沒有人發佈過一個體面的示例腳本,它爲開發人員和部署人員提供了一組適當的權限,爲這些角色設置了這些角色。

我們可以通過將事情鎖定,然後在我們發現需求時添加權限來完成這一切,但對於每個人來說這將是太大的PITA。

任何人都可以指向或提供一個很好的範例,用於這些類型的平臺上的這些角色的權限嗎?

+3

開發者做什麼?創建表?指標?存儲過程?編寫腳本來填充表格?他們可以刪除表格或sprocs嗎?他們可以授予權限嗎?他們可以添加登錄和角色嗎?開發人員可以做的事情差異很大,這可能解釋爲什麼這裏沒有標準答案。 – DOK 2010-05-23 19:50:01

+0

Dev DB服務器上的所有上述內容(登錄除外)。你可能是對的,DOK,這就是爲什麼沒有標準答案。在很多小商店裏,開發人員都是開發者服務器上的管理員。我一直在尋找一個允許他們在大多數情況下具有類似管理功能的權限集,但是否認他們是最危險的操作(如創建登錄)。所以,我會實施第一個好猜,然後通過PITA過程添加特權,因爲我們在錯誤的地方撞牆。 +1的評論可能是答案。 – 2010-05-26 11:53:18

+0

DOK,請將您的回覆作爲回覆發佈,以便我可以繼續並將此問題標記爲已回答。我討厭留下未解決的問題,更不要說「創造一個賞金」的嘮叨。 – 2010-06-02 12:20:23

回答

2

這會因公司而異。關鍵要素是鎖定生產,以便開發人員不能創建或更改對象。我們的開發人員只擁有產品的數據傳播權,沒有別的。除非登錄到應用程序並使用應用程序的權限,否則他們甚至不能執行存儲的proc。

我們給很多開發人員提供了關於開發人員的完全權利,但是這可能取決於他們應該開發哪些數據庫以及他們將爲他們支持的應用程序訪問哪些服務器。因此,完全訪問一個開發服務器的開發人員可能甚至沒有選擇權。

通過鎖定開發者的幫助,我們獲得了一些關鍵的東西。首先,沒有牛仔數據庫的開發。他們知道他們必須爲其他人創建腳本才能運行,因此他們不會做任何他們忘記的隨機變化。這也意味着它們不會成爲將腳本放入源代碼控制的問題,因爲擁有prod權限的用戶只有在源代碼管理中才能運行腳本。

接下來,沒有人做出即時的緊急事件,沒有經過測試的產品變更,從未下降到dev和qa,因此在下一次加載新版本時就會丟失。因此,對產品不起作用的更改也一路下滑,因爲現在,在有人試圖推出產品之前,所有產品都經過測試。

也不是人們在飛行數據更改刺激和意外更新整個用戶表,因爲他們忘了突出顯示一個where子句(是的,這發生在我們鎖定prod之前)。

+0

是的,我提到我計劃設置Prod和Staging的只讀訪問權限。 – 2010-05-26 11:55:09

1

我一直在尋找類似的指導,但沒有找到任何。經過一番實驗後,我認爲一個簡單的設置就是將用戶添加到「dbcreator」服務器角色,然後將他們添加到他們將要處理的每個數據庫中的「db_owner」角色。這將允許用戶創建新數據庫,並修改它們是「db_owner」成員的數據庫。

+0

我同意這些是合理的第一步。我對此有一些想法,我沒有時間寫出來。我認爲用「它取決於......」來回答這個問題並不是很有幫助。我仍然相信有人可以創建一個合理的「樣本模型」,這樣可以讓像我們這樣的人有一個體面的起點。從那裏,我們可以根據需要或公司策略應用我們自己的限制或擴展權限。 – 2012-01-27 15:52:26

相關問題