Share via


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

  1. 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.

  2. 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

  3. 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 e rpkgs-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

  4. Ripetere il comando per ogni database in cui devono essere installati i pacchetti.

  5. 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

  1. 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.

  2. Ripetere il comando in ogni database in cui è stata usata la gestione dei pacchetti.

  3. (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