5
數據庫用戶A應該只能訪問特定數據。 此數據目前提供的視圖B.VIEW1從模式B和C擁有的表中選擇。是EXECUTE AS OWNER的存儲過程是從第三模式表中選擇的視圖的有效替換嗎?
CREATE VIEW [B].[VIEW1] AS SELECT * FROM [B].[VIEW2], [C].[VIEW1]
由於C.VIEW1沒有被乙資,Ownership Chains適用。
這意味着儘管一個被授予選擇許可ON B.VIEW1,它不能從選擇。
SELECT permission denied on object 'C.VIEW1', database '...', schema '...'.
是一個存儲過程B.PROC1與EXECUTE AS OWNER Clause在安全性方面爲B.VIEW1一個有效的替代?
CREATE PROC [B.PROC1] WITH EXECUTE AS OWNER AS BEGIN SELECT * FROM [B.VIEW2], [C].[VIEW1] END
或者是否有任何負面影響可能導致任何安全問題?
討論:[SQL服務器:如何許可模式?](HTTP:/ /stackoverflow.com/questions/6509525/sql-server-2008-schema-separation-and-permissions?rq=1),[Sql Server 2008架構分離和權限](http://stackoverflow.com/questions/6509525/ sql-server-2008-schema-separation-and-permissions?rq = 1),[使用SQL Server中的存儲過程管理權限](http:/ /msdn.microsoft.com/en-us/library/bb669058.aspx) – Mike