Кто и как дает пользователям БД права на запуск хранимых процедур?

После создания хранимой процедуры права на её запуск имеет только её автор (создатель). Для того чтобы другой пользователь мог выполнить чужую процедуру, её создатель должен явно передать права на запуск своей процедуры.

Есть 2 типа прав на запуск чужой процедуры:

  1. право на выполнение чужой процедуры с собственными правами на доступ к объектам БД:

    GRANT EXECUTE ON < имя процедуры > TO < имя пользователя >;

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

  2. право на выполнение чужой процедуры с правами её создателя на доступ к объектам БД:

    GRANT EXECUTE AS OWNER ON < имя процедуры > TO < имя пользователя >;

    В этом случае SQL-запросы в указанной хранимой процедуре будут выполняться с правами её создателя.

Указанные выше права на выполнение хранимой процедуры можно предоставить с помощью утилиты «Рабочий стол СУБД ЛИНТЕР»:

  • в списке хранимых процедур соответствующего автора выбрать нужную процедуру;

  • с помощью пункта меню «Дискреционный доступ» контекстного меню выбранной процедуры установить соответствующее право выполнения процедуры.

При SQL-запросе запуска хранимой процедуры другим пользователем необходимо указывать полное имя процедуры, включая имя её схемы, которое обычно совпадает с именем создателя процедуры.