Habilitar ou desabilitar o gerenciamento remoto de pacotes para o SQL Server
Aplica-se a: SQL Server 2016 (13.x) SQL Server 2017 (14.x)
Importante
O suporte para o Machine Learning Server (anteriormente conhecido como R Server) terminou em 1º de julho de 2022. Para obter mais informações, consulte O que está acontecendo com o Servidor de Aprendizado de Máquina?
Este artigo descreve como habilitar o gerenciamento remoto de pacotes R de uma estação de trabalho cliente ou um servidor de aprendizado de máquina diferente. Depois que o recurso de gerenciamento de pacotes tiver sido habilitado no SQL Server, você poderá usar comandos RevoScaleR em um cliente para instalar pacotes no SQL Server.
Por padrão, o recurso de gerenciamento de pacotes externos para o SQL Server está desabilitado. Você deve executar um script separado para habilitar o recurso conforme descrito na próxima seção.
Visão geral do processo e das ferramentas
Para habilitar ou desabilitar o gerenciamento de pacotes no SQL Server, use o utilitário de linha de comando
Habilitar esse recurso é um processo de duas etapas, que requer um administrador de banco de dados: você habilita o gerenciamento de pacotes na instância do SQL Server (uma vez por instância do SQL Server) e, em seguida, habilita o gerenciamento de pacotes no banco de dados SQL (uma vez por banco de dados do SQL Server).
Desativar o recurso de gerenciamento de pacotes também requer várias etapas: remover os pacotes e as permissões no nível do banco de dados (uma vez por banco de dados), e depois remover as funções do servidor (uma vez por instância).
Habilitar o gerenciamento de pacotes
No SQL Server, abra um prompt de comando com privilégios elevados e navegue até a pasta que contém o utilitário, RegisterRExt.exe. O local padrão é
<SQLInstancePath>\R_SERVICES\library\RevoScaleR\rxLibs\x64\RegisterRExe.exe
.Execute o seguinte comando, fornecendo argumentos apropriados para seu ambiente:
RegisterRExt.exe /install pkgmgmt [/instance:name] [/user:username] [/password:*|password]
Este comando cria objetos no nível da instância no computador do SQL Server que são necessários para o gerenciamento de pacotes. Ele também reinicia o Launchpad para a instância.
Se você não especificar uma instância, a instância padrão será usada. Se você não especificar um usuário, o contexto de segurança atual será usado. Por exemplo, o comando a seguir habilita o gerenciamento de pacotes na instância padrão, usando as credenciais do usuário que abriu o prompt de comando:
REgisterRExt.exe /install pkgmgmt
Para adicionar o gerenciamento de pacotes a um banco de dados específico, execute o seguinte comando em um prompt de comando elevado:
RegisterRExt.exe /install pkgmgmt /database:databasename [/instance:name] [/user:username] [/password:*|password]
Este comando cria alguns artefatos de banco de dados, incluindo as seguintes funções de banco de dados que são usadas para controlar permissões de usuário:
rpkgs-users
,rpkgs-private
erpkgs-shared
.Por exemplo, o comando a seguir habilita o gerenciamento de pacotes no banco de dados, na instância padrão. Se você não especificar um usuário, o contexto de segurança atual será usado.
RegisterRExt.exe /install pkgmgmt /database:TestDB
Repita o comando para cada banco de dados onde os pacotes devem ser instalados.
Para verificar se as novas funções foram criadas com êxito, no SQL Server Management Studio, clique no banco de dados, expanda Securitye expanda Database Roles.
Você também pode executar uma consulta em sys.database_principals como as seguintes:
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;
Depois de habilitar esse recurso, você pode usar a função RevoScaleR para instalar ou desinstalar pacotes de um cliente R remoto.
Desativar o gerenciamento de pacotes
Em um prompt de comando elevado, execute o utilitário RegisterRExt novamente e desative o gerenciamento de pacotes no nível do banco de dados:
RegisterRExt.exe /uninstall pkgmgmt /database:databasename [/instance:name] [/user:username] [/password:*|password]
Este comando remove objetos de banco de dados relacionados ao gerenciamento de pacotes do banco de dados especificado. Ele também remove todos os pacotes que foram instalados do local seguro do sistema de arquivos no computador do SQL Server.
Repita esse comando em cada banco de dados onde o gerenciamento de pacotes foi usado.
(Opcional) Depois que todos os bancos de dados tiverem sido limpos de pacotes usando a etapa anterior, execute o seguinte comando em um prompt de comando elevado:
RegisterRExt.exe /uninstall pkgmgmt [/instance:name] [/user:username] [/password:*|password]
Este comando remove o recurso de gerenciamento de pacotes da instância. Talvez seja necessário reiniciar manualmente o serviço Launchpad mais uma vez para ver as alterações.