Concesión de permisos de usuario de base de datos para ejecutar scripts de Python y R con SQL Server Machine Learning Services

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Managed Instance

Obtenga información sobre cómo puede conceder a un usuario de base de datos permiso para ejecutar scripts de Python y R externos en SQL Server Machine Learning Services y proporcionar permisos de lectura, escritura o lenguaje de definición de datos (DDL) a las bases de datos.

Para obtener más información, vea la sección permisos de Seguridad para el marco de extensibilidad.

Permiso para ejecutar scripts

Para cada usuario que ejecuta scripts de R o Python con SQL Server Machine Learning Services y que no sea administrador, debe concederle el permiso para ejecutar scripts externos en cada base de datos en la que se usa el lenguaje.

Para conceder permiso a un usuario de base de datos para la ejecución de un script externo, ejecute el siguiente script:

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

Nota:

Los permisos no son específicos del lenguaje de script admitido. En otras palabras, no hay niveles de permisos independientes para el script de R comparado con el script de Python.

Concesión de permisos de base de datos

Mientras un usuario de base de datos ejecuta scripts, es posible que el usuario de base de datos tenga que leer datos de otras bases de datos. El usuario de base de datos también podría necesitar crear nuevas tablas para almacenar los resultados y escribir datos en las tablas.

Para cada cuenta de usuario de base de datos o inicio de sesión de SQL que ejecute scripts de R o Python, asegúrese de que tiene los permisos adecuados en la base de datos específica:

  • db_datareader para la lectura de datos.
  • db_datawriter para guardar objetos en la base de datos.
  • db_ddladmin para crear objetos como procedimientos almacenados o tablas que contienen datos entrenados y serializados.

Por ejemplo, la siguiente instrucción Transact-SQL concede al inicio de sesión de SQL MySQLLogin los derechos necesarios para ejecutar consultas de T-SQL en la base de datos ML_Samples. Para ejecutar esta instrucción, el inicio de sesión de SQL debe existir en el contexto de seguridad del servidor. Para más información, consulte sp_addrolemember (Transact-SQL).

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

Pasos siguientes

Para obtener más información sobre los permisos incluidos en cada rol, vea Roles de nivel de base de datos.