SQL Server Machine Learning Services で Python スクリプトと R スクリプトを実行する権限をデータベース ユーザーに付与する

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Managed Instance

SQL Server Machine Learning Services で外部の Python スクリプトおよび R スクリプトを実行する権限をデータベース ユーザーに付与する方法とデータベースに対する読み取り、書き込み、またはデータ定義言語 (DDL) の権限を付与する方法について説明します。

詳細については、「機能拡張フレームワークのセキュリティ概要」の「権限」セクションを参照してください。

スクリプトを実行する権限

SQL Server Machine Learning Services で Python スクリプトまたは R スクリプトを実行する、管理者ではない各ユーザーに対して、その言語が使用されている各データベースで外部スクリプトを実行する権限を許可する必要があります。

外部スクリプトを実行する権限をデータベース ユーザーに付与するには、次のスクリプトを実行します。

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

注意

サポートされているスクリプト言語には、権限が固有ではありません。 言い換えると、R スクリプトと Python スクリプトには個別の権限レベルがありません。

データベース アクセス許可を付与する

データベース ユーザーはスクリプトの実行中に他のデータベースからデータを読み取らなければならない場合があります。 また、データベース ユーザーは、結果を格納するための新しいテーブルを作成したり、テーブルにデータを書き込んだりすることが必要になる場合もあります。

R スクリプトまたは Python スクリプトを実行しているデータベース ユーザー アカウントまたは SQL ログインがそれぞれ、特定のデータベースに対して適切なアクセス許可を持っていることを確認します。

  • データを読み取るための db_datareader
  • オブジェクトをデータベースに保存するための db_datawriter
  • トレーニングおよびシリアル化されたデータを含むストアド プロシージャまたはテーブルなどのオブジェクトを作成する db_ddladmin

たとえば、次の Transact-SQL ステートメントでは、SQL ログインである MySQLLogin に、ML_Samples データベースで T-SQL クエリを実行する権限を与えています。 このステートメントを実行するには、SQL ログインがサーバーのセキュリティ コンテキストに既に存在している必要があります。 詳細については、「sp_addrolemember (Transact-SQL)」をご覧ください。

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

次のステップ

各ロールに含まれる権限の詳細については、「データベース レベルのロール」をご覧ください。