我已經看到了一些指導,這建議您通過分層通過存儲過程的所有數據訪問安全的數據庫。使用存儲過程訪問數據會提供哪些安全優勢?
我知道,SQL Server,可以保護表,偶數列針對CRUD操作。
例如:
--// Logged in as 'sa'
USE AdventureWorks;
GRANT SELECT ON Person.Address(AddressID, AddressLine1) to Matt;
GRANT UPDATE ON Person.Address(AddressLine1) to Matt;
--// Logged in as 'Matt'
SELECT * from Person.Address; --// Fail
SELECT AddressID, AddressLine1 from Person.Address; --// Succeed
UPDATE Person.Address SET AddressLine1 = '#____ 2700 Production Way'
WHERE AddressID = 497; --// Succeed
既然你可以確保表和偶數列針對CRUD操作,如何使用存儲過程中沒有提供額外的安全性,還是安全性的管理?
可能是因爲如果你是一名DBA是有效的最關鍵類型的安全性 - 它可以保護利用程序代碼的程序員來編寫查詢數據庫。 (半開玩笑......) – dkretz 2009-01-08 22:36:02