Dela via


Ge databasanvändare behörighet att köra Python- och R-skript med SQL Server Machine Learning Services

Gäller för: SQL Server 2016 (13.x) och senare versioner Azure SQL Managed Instance

Lär dig hur du kan ge en databasanvändare behörighet att köra externa Python- och R-skript i SQL Server Machine Learning Services och ge behörigheter för läs-, skriv- eller datadefinitionsspråk (DDL) till databaser.

Mer information finns i avsnittet behörigheter i Säkerhetsöversikt för utökningsramverket.

Behörighet att köra skript

För varje användare som kör Python- eller R-skript med SQL Server Machine Learning Services, och som inte är administratör, måste du ge dem behörighet att köra externa skript i varje databas där språket används.

Om du vill ge en databasanvändare behörighet att köra ett externt skript kör du följande skript:

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

Anmärkning

Behörigheter är inte specifika för skriptspråket som stöds. Det finns med andra ord inte separata behörighetsnivåer för R-skript jämfört med Python-skript.

Bevilja databasbehörigheter

När en databasanvändare kör skript kan databasanvändaren behöva läsa data från andra databaser. Databasanvändaren kan också behöva skapa nya tabeller för att lagra resultat och skriva data i tabeller.

För varje databasanvändarkonto eller SQL-inloggning som kör R- eller Python-skript kontrollerar du att det har rätt behörigheter för den specifika databasen:

  • db_datareader för att läsa data.
  • db_datawriter för att spara objekt i databasen.
  • db_ddladmin för att skapa objekt som lagrade procedurer eller tabeller som innehåller tränade och serialiserade data.

Följande Transact-SQL-instruktion ger till exempel SQL-inloggningen MySQLLogin behörighet att köra T-SQL-frågor i ML_Samples-databasen . Om du vill köra den här instruktionen måste SQL-inloggningen redan finnas i serverns säkerhetskontext. Mer information finns i sp_addrolemember (Transact-SQL).

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

Nästa steg

Mer information om de behörigheter som ingår i varje roll finns i Roller på databasnivå.