Предоставление разрешений на хранимую процедуру

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)

В этой статье описывается, как предоставить разрешения на хранимую процедуру в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Разрешения можно предоставить существующему пользователю, роли базы данных или роли приложения в базе данных.

ограничения

  • Нельзя использовать среду SQL Server Management Studio для предоставления разрешений на системные процедуры или системные функции. Вместо этого используйте Разрешения объекта GRANT .

Permissions

Объект, предоставляющий разрешение (или участник, указанный параметром AS), должен иметь либо само разрешение, выданное с помощью параметра GRANT OPTION, либо разрешение более высокого уровня, которое неявно включает предоставляемое. Необходимо разрешение ALTER на схему, которой принадлежит процедура, или разрешение CONTROL на процедуру. Дополнительные сведения см. в разделе Grant Object Permissions (Transact-SQL).

Использование SQL Server Management Studio

Предоставление разрешений на хранимую процедуру

  1. В обозревателе объектов подключитесь к экземпляру Компонент Database Engine и разверните его.

  2. Последовательно разверните узел Базы данных, базу данных, которой принадлежит процедура, и узел Программирование.

  3. Разверните узел Хранимые процедуры, щелкните правой кнопкой мыши процедуру для предоставления разрешений и выберите Свойства.

  4. В пункте Свойства хранимой процедурывыберите страницу Разрешения .

  5. Для предоставления разрешений пользователю, роли базы данных или роли приложения нажмите Поиск.

  6. В пункте Выбрать пользователей или ролей нажмите Типы объектов для добавления или исключения необходимых пользователей и ролей.

  7. Нажмите кнопку Обзор, чтобы показать список пользователей или ролей. Выберите пользователей или роли, которым следует предоставить разрешения.

  8. В сетке Явно указанные разрешения выберите разрешения для предоставления определенному пользователю или роли. Описание разрешений см. в разделе Разрешения (ядро СУБД).

Выбор Предоставить означает, что получателю разрешения предоставляется указанное разрешение. Выбор параметра Право передачи означает, что получатель разрешения имеет возможность предоставить указанное разрешение другим участникам.

Использование Transact-SQL

Предоставление разрешений на хранимую процедуру

  1. Установите соединение с компонентом Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере предоставляется разрешение EXECUTE на хранимую процедуру HumanResources.uspUpdateEmployeeHireInfo роли приложения с именем Recruiting11.

USE AdventureWorks2022;   
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    TO Recruiting11;  
GO  

Предоставление разрешений всем хранимым процедурам в схеме

  1. Установите соединение с компонентом Компонент Database Engine.

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере предоставляется разрешение EXECUTE всем хранимым процедурам, которые существуют или будут существовать в схеме HumanResources, к роли приложения с именем Recruiting11.

USE AdventureWorks2022;   
GRANT EXECUTE ON SCHEMA::HumanResources
    TO Recruiting11;  
GO  

Следующие шаги