我剛開始看到一個實現安全性的系統,與標準稍有不同。當EXECUTE AS用於安全時,加快SQL Server的策略
他們創建系統(其中有大約32K現在)的每個用戶一個新的SQL用戶。每個查詢都是通過最初使用SA帳戶的連接發送的(不要陷入這種困境),然後在知道用戶是誰之後,將使用EXECUTE AS USER查詢。
既然有這麼多的用戶,創建新用戶和交換有着顯着的性能命中,該公司正在尋求改善的情況。
的幾點: - SQL代碼是動態的SQL(不存儲過程) - 最初的想法是,以緩解需求,爲公司的開發人員擔心編寫SQL擔心權限 - 讓另一層隱憂關於它。
怎樣一個嘗試和改進的查詢執行時間,避免了EXECUTE AS用戶代碼,仍然得到同樣的安全審查?
SQL Server是否支持會話變量來存儲用戶帳戶?
'EXECUTE AS'用於每個查詢嗎?只要連接/會話保持打開,'EXECUTE AS'就保持有效。任何可以存儲在「會話變量」中的任何內容的生命週期都會比'EXECUTE AS'生效的時間週期更短,或者等於其長度。 –