Abilitare o disabilitare la gestione remota dei pacchetti per SQL Server
Si applica a: SQL Server 2016 (13.x) SQL Server 2017 (14.x)
Importante
Il supporto per Machine Learning Server (noto in precedenza come R Server) è terminato il 1° luglio 2022. Per altre informazioni, vedere Informazioni su Machine Learning Server
Questo articolo descrive come abilitare la gestione remota dei pacchetti R da una workstation client o da un'istanza diversa di Machine Learning Server. Dopo aver abilitato la funzionalità di gestione dei pacchetti in SQL Server, è possibile usare i comandi RevoScaleR in un client per installare i pacchetti in SQL Server.
Per impostazione predefinita, la funzionalità di gestione esterna dei pacchetti per SQL Server è disabilitata. È necessario eseguire uno script separato per abilitare la funzionalità come descritto nella sezione successiva.
Panoramica del processo e degli strumenti
Per abilitare o disabilitare la gestione dei pacchetti in SQL Server, usare l'utilità della riga di comando RegisterRExt.exe inclusa nel pacchetto RevoScaleR.
L'abilitazione di questa funzionalità è un processo che consiste di due passaggi e richiede un amministratore del database. La gestione dei pacchetti viene abilitata nell'istanza di SQL Server (una volta per ogni istanza di SQL Server) e poi nel database SQL (una volta per ogni database di SQL Server).
Anche per disabilitare la funzionalità di gestione dei pacchetti sono necessari più passaggi. Si rimuovono le autorizzazioni e i pacchetti a livello di database (una volta per ogni database), poi si rimuovono i ruoli dal server (una volta per ogni istanza).
Abilitare la gestione dei pacchetti
In SQL Server aprire un prompt dei comandi con privilegi elevati e passare alla cartella che contiene l'utilità RegisterRExt.exe. Il percorso predefinito è
<SQLInstancePath>\R_SERVICES\library\RevoScaleR\rxLibs\x64\RegisterRExe.exe
.Eseguire il comando seguente, specificando gli argomenti appropriati per l'ambiente:
RegisterRExt.exe /install pkgmgmt [/instance:name] [/user:username] [/password:*|password]
Questo comando crea oggetti a livello di istanza nel computer con SQL Server che sono necessari per la gestione dei pacchetti. Riavvia anche il servizio Launchpad per l'istanza.
Se non si specifica un'istanza, viene usata l'istanza predefinita. Se non si specifica un utente, viene usato il contesto di sicurezza corrente. Il comando seguente, ad esempio, abilita la gestione dei pacchetti nell'istanza predefinita, usando le credenziali dell'utente che ha aperto il prompt dei comandi:
REgisterRExt.exe /install pkgmgmt
Per aggiungere la gestione dei pacchetti a un database specifico, eseguire il comando seguente da un prompt dei comandi con privilegi elevati:
RegisterRExt.exe /install pkgmgmt /database:databasename [/instance:name] [/user:username] [/password:*|password]
Questo comando crea alcuni artefatti del database, tra cui i ruoli del database seguenti necessari per il controllo delle autorizzazioni utente:
rpkgs-users
,rpkgs-private
erpkgs-shared
.Il comando seguente, ad esempio, abilita la gestione dei pacchetti nel database, nell'istanza predefinita. Se non si specifica un utente, viene usato il contesto di sicurezza corrente.
RegisterRExt.exe /install pkgmgmt /database:TestDB
Ripetere il comando per ogni database in cui devono essere installati i pacchetti.
Per verificare che i nuovi ruoli siano stati creati, fare clic sul database in SQL Server Management Studio, espandere Sicurezza, quindi Ruoli database.
È anche possibile eseguire una query su sys.database_principals, ad esempio la seguente:
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;
Dopo aver abilitato questa funzionalità, è possibile usare la funzione RevoScaleR per installare o disinstallare i pacchetti da un client R remoto.
Disabilitare la gestione dei pacchetti
Da un prompt dei comandi con privilegi elevati, eseguire di nuovo l'utilità RegisterRExt per disabilitare la gestione dei pacchetti a livello di database:
RegisterRExt.exe /uninstall pkgmgmt /database:databasename [/instance:name] [/user:username] [/password:*|password]
Questo comando rimuove gli oggetti di database correlati alla gestione dei pacchetti dal database specificato. Rimuove anche tutti i pacchetti installati dal percorso del file di sistema protetto nel computer con SQL Server.
Ripetere il comando in ogni database in cui è stata usata la gestione dei pacchetti.
(Facoltativo) Dopo aver cancellato i pacchetti da tutti i database usando il passaggio precedente, eseguire il comando seguente da un prompt dei comandi con privilegi elevati:
RegisterRExt.exe /uninstall pkgmgmt [/instance:name] [/user:username] [/password:*|password]
Questo comando rimuove la funzionalità di gestione dei pacchetti dall'istanza. Per visualizzare le modifiche, potrebbe essere necessario riavviare manualmente il servizio Launchpad.
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per