Security
防止使用者更改擴展屬性
問題:
預設情況下,使用者可以更改自己的擴展屬性。以下程式碼是否適合防止使用者更改其使用者擴展屬性屬性?:
USE [CustomerAccessDatabase]; GO DENY SELECT ON sys.extended_properties to [Customer_Access_Role]; GO USE [master]; GO DENY EXEC ON sys.sp_addextendedproperty to [public]; GO DENY EXEC ON sys.sp_dropextendedproperty to [public]; GO DENY EXEC ON sys.sp_updateextendedproperty to [public]; GO
我有理由相信我已經解決了這個問題並充分確保了這一點。
拒絕對 sys.extended_properties 進行選擇不是一個選項,因為這會阻止在所有表上進行選擇。
但是,在系統儲存過程上拒絕 Exec 本身就足夠了。使用者可以看到擴展屬性,但不能更改它們。嘗試通過 SSMS 前端更改擴展屬性也會失敗,因為後端呼叫相同的系統儲存過程。