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'
次のステップ
各ロールに含まれる権限の詳細については、「データベース レベルのロール」をご覧ください。