Security

防止使用者更改擴展屬性

  • March 15, 2016

問題:

預設情況下,使用者可以更改自己的擴展屬性。以下程式碼是否適合防止使用者更改其使用者擴展屬性屬性?:

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 前端更改擴展屬性也會失敗,因為後端呼叫相同的系統儲存過程。

引用自:https://serverfault.com/questions/762752