熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

為什麼在使用動態 SQL 語句時必須為低層數據庫對象授予權限?

2022-06-13   來源: SQL Server 

出於安全原因需要這些權限請考慮下列簡單存儲過程

USE pubs
GO

Create PROCEDURE GeneralSelect @TableName SYSNAME
AS
EXEC (&#;Select * FROM &#; + @TableName)
GO

您可能希望您的存儲過程發出一個與下面類似的調用

USE pubs
EXEC GeneralSelect &#;authors&#;

但是請考慮傳送給存儲過程的下列順序

USE pubs
EXEC GeneralSelect &#;authors Drop TABLE authors&#;

如果存儲過程的創建者是 pubs 數據庫中 db_owner 角色的成員並且您的用戶只需要對存儲過程具有 EXECUTE ㄏ蓿蚋妹罱境?authors 表SQL Server 通過要求用戶證明具有對數據庫對象(通過動態 SQL 語句引用的)的正確權限來保護數據免受未授權的操作


From:http://tw.wingwit.com/Article/program/SQLServer/201405/30729.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.