使用 SQL Server 機器學習服務,授與資料庫使用者執行 Python 及 R 指令碼的權限
適用於:SQL Server 2016 (13.x) 和更新版本 Azure SQL 受控執行個體
了解如何對資料庫使用者授與在 SQL Server 機器學習服務中執行外部 Python 及 R 指令碼的權限,並將讀取、寫入或資料定義語言 (DDL) 權限授與資料庫。
如需詳細資訊,請在擴充性架構的安全性概觀中參閱<權限>區段。
執行指令碼的權限
針對使用 SQL Server 機器學習服務執行 R 或 Python 指令碼的每位使用者,以及非系統管理員的使用者,您都必須授與權限,使其可在使用該語言的每個資料庫中執行外部指令碼。
若要授與資料庫使用者執行外部指令碼的權限,請執行下列指令碼:
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'
後續步驟
如需每個角色中所包含的權限詳細資訊,請參閱資料庫層級角色。