Accorder des autorisations utilisateur sur SQL Server Machine Learning ServicesGive users permission to SQL Server Machine Learning Services

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cet article explique comment autoriser les utilisateurs à exécuter des scripts externes dans SQL Server Machine Learning Services et comment accorder des autorisations de lecture, d’écriture ou de langage de définition de données (DDL) sur les bases de données.This article describes how you can give users permission to run external scripts in SQL Server Machine Learning Services and give read, write, or data definition language (DDL) permissions to databases.

Pour plus d’informations, consultez la section Autorisations dans la vue d’ensemble de la sécurité du framework d’extensibilité.For more information, see the permissions section in Security overview for the extensibility framework.

Autorisation d’exécuter des scriptsPermission to run scripts

Si vous avez installé SQL ServerSQL Server vous-même et que vous exécutez des scripts R ou Python dans votre propre instance, vous exécutez généralement des scripts en tant qu’administrateur.If you installed SQL ServerSQL Server yourself, and you are running R or Python scripts in your own instance, you typically execute scripts as an administrator. Vous disposez ainsi d’autorisations implicites sur diverses opérations et sur toutes les données de la base de données.Thus, you have implicit permission over various operations and all data in the database.

Toutefois, la plupart des utilisateurs ne bénéficient pas de ces autorisations élevées.Most users, however, do not have such elevated permissions. Par exemple, les utilisateurs d’une organisation qui utilisent des connexions SQL pour accéder à la base de données n’ont généralement pas d’autorisations élevées.For example, users in an organization who use SQL logins to access the database generally do not have elevated permissions. Par conséquent, pour chaque utilisateur utilisant R ou Python, vous devez autoriser les utilisateurs de Machine Learning Services à exécuter des scripts externes dans chaque base de données où le langage est utilisé.Therefore, for each user who is using R or Python, you must grant users of Machine Learning Services the permission to run external scripts in each database where the language is used. Voici comment faire :Here's how:

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.Permissions are not specific to the supported script language. En d’autres termes, il n’existe pas de niveaux d’autorisation distincts pour les scripts R et Python.In other words, there are not separate permission levels for R script versus Python script. Si vous souhaitez maintenir des autorisations distinctes pour ces langages, installez R et Python sur des instances distinctes.If you need to maintain separate permissions for these languages, install R and Python on separate instances.

Accorder des autorisations sur les bases de donnéesGrant databases permissions

Quand un utilisateur exécute des scripts, il peut avoir besoin de lire les données d’autres bases de données.While a user is running scripts, the user might need to read data from other databases. Il peut également être amené à créer des tables pour stocker les résultats et à écrire des données dans des tables.The user might also need to create new tables to store results, and write data into tables.

Vérifiez que chaque compte d’utilisateur Windows ou connexion SQL exécutant des scripts R ou Python dispose des autorisations appropriées sur la base de données spécifique : db_datareader pour lire des données, db_datawriter pour enregistrer des objets dans la base de données ou db_ddladmin pour créer des objets tels que des procédures stockées ou des tables contenant des données entraînées et sérialisées.For each Windows user account or SQL login that is running R or Python scripts, ensure that it has the appropriate permissions on the specific database: db_datareader to read data, db_datawriter to save objects to the database, or db_ddladmin to create objects such as stored procedures or tables containing trained and serialized data.

Par exemple, l’instruction Transact-SQLTransact-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.For example, the following Transact-SQLTransact-SQL statement gives the SQL login MySQLLogin the rights to run T-SQL queries in the ML_Samples database. Pour exécuter cette instruction, la connexion SQL doit déjà exister dans le contexte de sécurité du serveur.To run this statement, the SQL login must already exist in the security context of the server.

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

Étapes suivantesNext steps

Pour plus d’informations sur les autorisations incluses dans chaque rôle, consultez Rôles au niveau de la base de données.For more information about the permissions included in each role, see Database-level roles.