若使用者需透過 Access 等工具存取資料,僅授予檢視表與預存程序的權限即可。當預存程序、參考的資料表與檢視表擁有者皆為 dbo 時,授與 EXECUTE 權限即足夠,SQL Server 將不再檢查底層資料表權限,這就是所有權鏈機制。
SELECT、INSERT、UPDATE、DELETE 等細粒度權限,彈性高於預存程序。跨資料庫查詢時,所有權鏈仍受限於資料庫擁有者。若三個資料庫的擁有者不同,即使登入帳號同屬 sysadmin 角色,查詢仍會失敗。解決方式:使用 sp_changedbowner 將相關資料庫擁有者統一,或改用預存程序封裝跨庫邏輯。
dbo)以啟用所有權鏈。