正確修改SQL Server 2005執行環境之所有權鏈
以下的文章主要描述的是正確修改SQL Server 2005執行環境的實際操作步驟,假如你在實際操作中遇到修改SQL Server 2005執行環境的情況,但你卻不知道對其如何正確的解決,那么以下的文章對你而言一定是良師益友。
執行環境是SQL Server數據庫中設定用戶權限的認證方式,比如,當您登錄到SQL Server的時候,登錄賬戶就被賦予了一定的權限,其中可能包括登錄的功能、訪問數據庫以及在數據庫中執行某些操作的功能。
SQL Server 2005包含了EXECUTE AS語句,通過使用EXECUTE AS語句,您可以為批處理和過程轉換執行環境,這樣,調用該批處理或過程的用戶就可以使用不同的權限來操作了。
所有權鏈
在我正式講解SQL Server 2005中執行環境的問題之前,先來簡單地說說所有權鏈的工作原理。
當用戶執行一個存儲過程的時候(假定該用戶擁有執行該存儲過程的權限),SQL Server將該存儲過程的所有者與這個存儲過程所涉及到的對象的所有者進行對比,如果他們的所有者相同,那么就不必對這些引用對象的權限進行評估了。
所以,如果用戶Tim獲得了存儲過程usp_ProcedureChain的權限,而usp_ProcedureChain存儲過程的所有者是dbo,那么,如果dbo還同時擁有usp_ProcedureChain所調用的其他存儲過程,那么Tim在執行這個存儲過程的時候就不會出現錯誤。
執行環境的轉換
在SQL Server 2000中,您可以使用SETUSER命令來模擬SQL用戶的執行環境,但問題在于,只有系統管理員或者數據庫的所有者才能使用這個命令,而且Windows賬戶也不能使用該命令。
在SQL Server 2005中,EXECUTE AS語句可以替代SETUSER來改變存儲過程、觸發器、批處理或者函數的執行環境。如果執行環境變成了另外一個用戶,那么SQL Server將檢查該用戶的權限。如果您需要在創建或修改一個存儲過程或函數的時候指定EXECUTE AS語句,您需要具備IMPERSONATE的權限,以及創建該對象的權限。
上述的相關內容就是對修改SQL Server 2005執行環境的描述,希望會給你帶來一些幫助在此方面。
【編輯推薦】
- 三種SQL Server查找數據方法的比較
- 用SQL Server索引密度對行數進行評估
- SQL Server評價索引之有效性
- SQL Server視圖索引與索引視圖指南
- SQL Server選擇索引之查詢VS 的性能修改