Предоставление пользователям базы данных разрешения на выполнение скриптов Python и R с помощью Служб машинного обучения SQL Server

Область применения: SQL Server 2016 (13.x) и более поздних версий Управляемый экземпляр SQL Azure

Узнайте, как предоставить пользователю базы данных разрешения на выполнение внешних скриптов Python и R в Службах машинного обучения SQL Server, а также разрешения на чтение, запись или выполнение инструкций на языке описания данных (DDL) для баз данных.

Дополнительные сведения см. в подразделе "Разрешения" раздела Общие сведения о безопасности для платформы расширяемости.

Разрешение на выполнение скриптов

Каждому пользователю, запускающему скрипты Python или R со Службами машинного обучения SQL Server и не являющемуся администратором, необходимо предоставить разрешение на выполнение внешних скриптов в каждой базе данных, где используется этот язык.

Чтобы предоставить пользователю базу данных разрешение на выполнение внешнего скрипта, выполните следующий скрипт:

USE <database_name>
GO
GRANT EXECUTE ANY EXTERNAL SCRIPT TO [UserName]

Примечание.

Разрешения не относятся к конкретному поддерживаемому языку скриптов. Иными словами, не существует отдельных уровней разрешений для скриптов R и скриптов Python.

Предоставление разрешений для базы данных

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

Необходимо убедиться, что у каждой учетной записи пользователя базы данных или имени входа SQL, используемых для выполнения скриптов R или Python, имеются соответствующие разрешения для конкретной базы данных:

  • db_datareader для чтения данных.
  • db_datawriter для сохранения объектов в базе данных.
  • db_ddladmin для создания таких объектов, как хранимые процедуры или таблицы, содержащие обученные и сериализованные данные.

Например, приведенная ниже инструкция Transact-SQL предоставляет имени входа SQL MySQLLogin права на выполнение запросов T-SQL в базе данных ML_Samples. Для выполнения этой инструкции имя входа SQL уже должно существовать в контексте безопасности сервера. Дополнительные сведения см. в статье Хранимая процедура sp_addrolemember (Transact-SQL).

USE ML_Samples
GO
EXEC sp_addrolemember 'db_datareader', 'MySQLLogin'

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

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