Octroi aux utilisateurs de bases de données de l’autorisation d’exécuter des scripts Python et R avec SQL Server Machine Learning Services

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL Managed Instance

Découvrez comment autoriser un utilisateur de base de données à exécuter des scripts Python et R externes dans SQL Server Machine Learning Services et accorder des autorisations de lecture, d’écriture ou de langage de définition de données (DDL) sur les bases de données.

Pour plus d’informations, consultez la section Autorisations dans la vue d’ensemble de la sécurité du framework d’extensibilité.

Autorisation d’exécuter des scripts

Vous devez autoriser chaque utilisateur qui exécute des scripts Python ou R avec SQL Server Machine Learning Services sans être administrateur à exécuter des scripts externes dans toutes les bases de données où le langage est utilisé.

Pour autoriser un utilisateur de base de données à exécuter un script externe, exécutez le script suivant :

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

Notes

Les autorisations ne sont pas spécifiques au langage de script pris en charge. En d’autres termes, il n’existe pas de niveaux d’autorisation distincts pour les scripts R et Python.

Octroi d’autorisations sur une base de données

Quand il exécute des scripts, un utilisateur de base de données peut avoir besoin de lire les données d’autres bases de données. Il peut également être amené à créer des tables pour stocker les résultats et à écrire des données dans des tables.

Vérifiez que chaque compte d’utilisateur de base de données ou connexion SQL qui exécute des scripts R ou Python dispose des autorisations appropriées sur la base de données en question :

  • db_datareader pour lire des données.
  • db_datawriter pour enregistrer des objets dans la base de données.
  • db_ddladmin pour créer des objets comme des procédures stockées ou des tables contenant des données entraînées et sérialisées.

Par exemple, l’instruction Transact-SQL suivante donne à la connexion SQL MySQLLogin les droits nécessaires pour exécuter des requêtes T-SQL dans la base de données ML_Samples. Pour exécuter cette instruction, la connexion SQL doit déjà exister dans le contexte de sécurité du serveur. Pour plus d’informations, consultez sp_addrolemember (Transact-SQL).

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

Étapes suivantes

Pour plus d’informations sur les autorisations incluses dans chaque rôle, consultez Rôles au niveau de la base de données.