12 февраля 2012 г.

20120212 Права доступа к расширенным свойствам

Расширенные свойства можно добавлять практически ко всем объектам базы SQL Server, за небольшим исключением некоторых типов объектов. Обычным применением расширенных свойств является:

  • переопределение имен колонок таблиц, отображаемых в графических интерфейсах клиентских приложений
  • описание объектов базы данных, которое сохраняется в свойствах с предопределенным именем.

Так SQL Server Management Studio использует в качестве стандартного имени для описания колонок таблиц - MS_Description.

В процессе проектирования и разработки базы данных разработчик, как правило, имеет полный доступ к объектам базы и таким образом - полный доступ к расширенным свойствам объектов. Но ситуация меняется, когда требуется ограничить доступ к данным и объектам базы.

Для просмотра расширенных свойств объектов требуется разрешение VIEW DEFINITION, а для их добавления/редактирования/удаления разрешение ALTER. Такие разрешения удобнее всего ограничивать с помощью ролей базы. Роли группируют разрешения и ограничения доступа к объектам/данным базы и позволяют сократить время, затрачиваемое на администрирование.

В следующем примере создается роль [my_db_role], члены которой могут изменять свойства объектов только в схеме [my_schema], но они могут просматривать метаданные всей базы и соответственно расширенные свойства всех объектов базы.
create role [my_db_role]
go
grant view definition to [my_db_role]
go
grant alter on schema::[my_schema] to [my_db_role]
go
Описанные права доступа следует учитывать при использовании утилиты ExPEditor для документирования баз SQL Server.

Комментариев нет:

Отправить комментарий