啟用或停用 SQL Server 的遠端套件管理
適用於: SQL Server 2016 (13.x) SQL Server 2017 (14.x)
重要
Machine Learning Server (先前稱為 R Server) 的支援已於 2022 年 7 月 1 日結束。 如需詳細資訊,請參閱 Machine Learning Server 怎麼了?
此文章說明如何從用戶端工作站或不同的 Machine Learning Server 啟用 R 套件的遠端管理。 在 SQL Server 上啟用套件管理功能之後,就可以在用戶端上使用 RevoScaleR 命令將套件安裝在 SQL Server 上。
SQL Server 的外部套件管理功能預設為停用。 您必須執行個別指令碼來啟用此功能,如下一節所述。
程序與工具概觀
若要在 SQL Server 上啟用或停用套件管理,請使用 RevoScaleR 套件中隨附的命令列公用程式 RegisterRExt.exe。
啟用此功能是兩步驟程序,而且需由資料庫管理員執行:您必須在 SQL Server 執行個體上啟用套件管理 (每個 SQL Server 執行個體個別啟用),然後在 SQL 資料庫上啟用套件管理 (每個 SQL Server 資料庫個別啟用)。
停用套件管理功能也需要多個步驟:您必須移除資料庫層級套件與權限 (每個資料庫個別移除),然後從伺服器移除角色 (每個執行個體個別移除)。
啟用套件管理
在 SQL Server 上,開啟提升權限的命令提示字元,並瀏覽至包含公用程式 RegisterRExt.exe 的資料夾。 預設位置為
<SQLInstancePath>\R_SERVICES\library\RevoScaleR\rxLibs\x64\RegisterRExe.exe
。執行下列命令,並為您的環境提供適當的引數:
RegisterRExt.exe /install pkgmgmt [/instance:name] [/user:username] [/password:*|password]
此命令會在 SQL Server 電腦上建立套件管理所需的執行個體層級物件, 此命令也會重新啟動執行個體的 Launchpad。
如果您未指定執行個體,系統會使用預設的執行個體。 如果您未指定使用者,系統會使用目前的資訊安全內容。 例如,下列命令會使用開啟命令提示字元的使用者認證,對預設的執行個體啟用套件管理:
REgisterRExt.exe /install pkgmgmt
若要將套件管理新增至特定資料庫,請從提高權限的命令提示字元執行下列命令:
RegisterRExt.exe /install pkgmgmt /database:databasename [/instance:name] [/user:username] [/password:*|password]
此命令會建立一些資料庫成品,包括下列用來控制使用者權限的資料庫角色:
rpkgs-users
、rpkgs-private
與rpkgs-shared
。例如,下列命令會對預設執行個體的資料庫啟用套件管理。 如果您未指定使用者,系統會使用目前的資訊安全內容。
RegisterRExt.exe /install pkgmgmt /database:TestDB
請為必須安裝套件的每個資料庫重複執行此命令。
若要確認已成功建立新角色,請在 SQL Server Management Studio 中,按一下資料庫、展開 [安全性] ,然後展開 [資料庫角色] 。
您也可以如下所示,在 sys.database_principals 上執行查詢:
SELECT pr.principal_id, pr.name, pr.type_desc, pr.authentication_type_desc, pe.state_desc, pe.permission_name, s.name + '.' + o.name AS ObjectName FROM sys.database_principals AS pr JOIN sys.database_permissions AS pe ON pe.grantee_principal_id = pr.principal_id JOIN sys.objects AS o ON pe.major_id = o.object_id JOIN sys.schemas AS s ON o.schema_id = s.schema_id;
啟用此功能之後,您就可以使用 RevoScaleR 函式,從遠端 R 用戶端安裝或解除安裝套件。
停用套件管理
再次從提升權限的命令提示字元執行 RegisterRExt 公用程式,並在資料庫層級停用套件管理:
RegisterRExt.exe /uninstall pkgmgmt /database:databasename [/instance:name] [/user:username] [/password:*|password]
此命令會從指定的資料庫移除與套件管理有關的資料庫物件, 此命令也會從 SQL Server 電腦上受保護的檔案系統位置,移除已安裝的所有套件。
請在使用套件管理的每個資料庫上重複執行此命令。
(選擇性) 使用前述步驟清除所有資料庫的套件之後,從提高權限的命令提示字元執行下列命令:
RegisterRExt.exe /uninstall pkgmgmt [/instance:name] [/user:username] [/password:*|password]
此命令會從執行個體移除套件管理功能。 您可能需要再次手動重新啟動 Launchpad 服務,以查看變更。