Security
為開發人員提供對架構的只讀訪問權限
我們有一個登台伺服器,在我們上線之前我們會在其中進行最終驗收測試。它是 Live 的副本,其中開發人員沒有比普通使用者更多的權限。我正在嘗試授予開發人員對此伺服器上數據和對象的只讀權限,以便他們可以調查錯誤。
我讓他們擔任 db_datareader 成員的角色,該角色為他們提供數據和表模式,但他們看不到視圖、儲存過程和函式中的內容,因此他們不斷來找我查找。我無法將它們添加到 db_ddladmin,因為這會讓它們更改對象,而且我看不到任何其他看起來正確的固定伺服器或數據庫角色。
我真的必須在每個有問題的對像上授予他們查看定義,還是有更清潔的方法?
您可以在架構級別授予“查看定義”權限。最簡單的方法是在臨時數據庫中創建一個新角色(例如“dev_datareader”)。然後執行以下操作,如果“dbo”不同,則將您的模式名稱替換為:
GRANT SELECT, VIEW DEFINITION ON SCHEMA::[dbo] TO [dev_datareader]
這是完整的 SQL(帶有使用者創建)
CREATE LOGIN dev_datareader WITH PASSWORD = '340$Uuxwp7Mcxo7Khy'; GO CREATE USER dev_datareaderFOR LOGIN dev_datareader; GO GRANT SELECT, VIEW DEFINITION ON SCHEMA::[dbo] TO dev_datareader