Назад | Перейти на главную страницу

Запретить пользователю изменять расширенные свойства

Вопрос:

По умолчанию пользователь может изменять свои собственные расширенные свойства. Подходит ли следующий код для предотвращения изменения пользователем атрибутов расширенных свойств пользователя ?:

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 также не удалась, поскольку серверная часть вызывает те же системные хранимые процедуры.