You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: How to grant database user permissions for R and Python script execution on SQL Server Machine Learning Services.
2
+
title: Grant permissions to execute Python and R scripts
3
+
description: Learn how you can give users permission to run external Python and R scripts in SQL Server Machine Learning Services and give read, write, or data definition language (DDL) permissions to databases.
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.
16
+
Learn how you can give users permission to run external Python and R scripts in [SQL Server Machine Learning Services](../sql-server-machine-learning-services.md) and give read, write, or data definition language (DDL) permissions to databases.
18
17
19
18
For more information, see the permissions section in [Security overview for the extensibility framework](../../machine-learning/concepts/security.md#permissions).
20
19
21
20
<aname="permissions-external-script"></a>
22
21
23
22
## Permission to run scripts
24
23
25
-
If you installed [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] yourself, and you are running R or Python scripts in your own instance, you typically execute scripts as an administrator. Thus, you have implicit permission over various operations and all data in the database.
24
+
For each user who use Python or R with SQL Server Machine Learning Services, and who are not an administrator, you must grant them the permission to run external scripts in each database where the language is used.
26
25
27
-
Most users, however, do not have such elevated permissions. For example, users in an organization who use SQL logins to access the database generally do not have elevated permissions. 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. Here's how:
26
+
To grant permission to execute external script, run the following script:
28
27
29
28
```sql
30
29
USE <database_name>
@@ -33,15 +32,19 @@ GRANT EXECUTE ANY EXTERNAL SCRIPT TO [UserName]
33
32
```
34
33
35
34
> [!NOTE]
36
-
> Permissions are not specific to the supported script language. In other words, there are not separate permission levels for R script versus Python script. If you need to maintain separate permissions for these languages, install R and Python on separate instances.
35
+
> Permissions are not specific to the supported script language. In other words, there are not separate permission levels for R script versus Python script.
37
36
38
-
<aname="permissions-db"></a>
37
+
<aname="permissions-db"></a>
39
38
40
39
## Grant databases permissions
41
40
42
41
While a user is running scripts, the user might need to read data from other databases. The user might also need to create new tables to store results, and write data into tables.
43
42
44
-
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.
43
+
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:
44
+
45
+
+`db_datareader` to read data.
46
+
+`db_datawriter` to save objects to the database.
47
+
+`db_ddladmin` to create objects such as stored procedures or tables containing trained and serialized data.
45
48
46
49
For example, the following [!INCLUDE[tsql](../../includes/tsql-md.md)] statement gives the SQL login *MySQLLogin* the rights to run T-SQL queries in the *ML_Samples* database. To run this statement, the SQL login must already exist in the security context of the server.
For more information about the permissions included in each role, see [Database-level roles](../../relational-databases/security/authentication-access/database-level-roles.md).
59
+
For more information about the permissions included in each role, see [Database-level roles](../../relational-databases/security/authentication-access/database-level-roles.md).
0 commit comments