Базы данных - MySQL - статьи

         

Управление контекстом выполнения кода


SQL Server 2005 позволяет указать контекст безопасности, в котором будут выполняться те или иные операторы программного модуля, а именно учетной записи, использующейся при проверке разрешений на объекты, на которые ссылается процедура или функция. Это может быть, например, учетная запись пользователя, вызвавшего процедуру, или учетная запись пользователя, создавшего процедуру, или же другая учетная запись.

Одно из новшеств SQL Server 2005, реализующее принцип минимальных привилегий, позволяет выполнять хранимые процедуры и функции, определяемые пользователем, с правами другого пользователя. Для этой цели имеется оператор EXECUTE AS. Он позволяет более гибко управлять правами, предоставляемыми исполняемому коду, и не связывать их с правами самого пользователя. Указанная функциональность может применяться для безопасного управления правами пользователей. Так, решение такой часто встречающейся задачи, как предоставление доступа к процедуре без предоставления доступа к таблице, которую использует данная процедура, решается с помощью оператора EXECUTE AS без необходимости предоставления пользователям процедуры дополнительных привилегий. Конструкция EXECUTE AS, указываемая при создании соответствующего объекта базы данных, задает пользовательскую учетную запись, которую SQL Server будет использовать для проверки прав доступа к объектам, используемым в коде хранимой процедуры или пользовательской функции. В результате код, выполнение которого инициировано пользователем, выполняется так, как если бы пользователь зарегистрировался под другой учетной записью. Использование конструкции EXECUTE AS позволяет исключить цикличное назначение и проверку прав доступа при выполнении конструкций SELECT, INSERT, UPDATE, DELETE и

EXECUTE, а также открытия непосредственного доступа к ряду объектов базы данных.



Содержание раздела