Criar um banco de dados e permissões (tutorial de SQL Server e RevoScaleR)
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Este é o tutorial 1 da série de tutoriais do RevoScaleR sobre como usar as funções do RevoScaleR com o SQL Server.
Este tutorial descreve como criar um banco de dados SQL Server e definir as permissões necessárias para concluir os outros tutoriais nesta série. Use o SQL Server Management Studio ou outro editor de consultas para concluir as seguintes tarefas:
- Criar um novo banco de dados para armazenar os dados de treinamento e pontuação dos dois modelos do R
- Criar um logon de usuário de banco de dados com permissões para criar e usar objetos de banco de dados
Criar o banco de dados
Este tutorial requer um banco de dados para o armazenamento de dados e código. Se você não for um administrador, peça ao DBA para criar o banco de dados e o logon para você. Você precisará de permissões para gravar e ler dados e para executar scripts do R.
No SQL Server Management Studio, conecte-se a uma instância do banco de dados habilitada para R.
Clique com o botão direito do mouse em Bancos de dadose selecione Novo banco de dados.
Digite um nome para o novo banco de dados: RevoDeepDive.
Criar um logon
Clique em Nova Consulta e altere o contexto do banco de dados mestre.
Na janela Nova consulta , execute os comandos a seguir para criar as contas de usuário e atribuí-las ao banco de dados usado neste tutorial. Lembre-se de alterar o nome do banco de dados, se necessário.
Para confirmar o logon, selecione o novo banco de dados, expanda Segurançae expanda Usuários.
usuário Windows
-- Create server user based on Windows account
USE master
GO
CREATE LOGIN [<DOMAIN>\<user_name>] FROM WINDOWS WITH DEFAULT_DATABASE=[RevoDeepDive]
--Add the new user to tutorial database
USE [RevoDeepDive]
GO
CREATE USER [<user_name>] FOR LOGIN [<DOMAIN>\<user_name>] WITH DEFAULT_SCHEMA=[db_datareader]
Logon do SQL
-- Create new SQL login
USE master
GO
CREATE LOGIN [DDUser01] WITH PASSWORD='<type password here>', CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF;
-- Add the new SQL login to tutorial database
USE RevoDeepDive
GO
CREATE USER [DDUser01] FOR LOGIN [DDUser01] WITH DEFAULT_SCHEMA=[db_datareader]
Atribuir permissões
Este tutorial demonstra o script R e as operações DDL, incluindo a criação e exclusão de tabelas e procedimentos armazenados e a execução do script R em um processo externo no SQL Server. Nesta etapa, atribua permissões para permitir essas tarefas.
Este exemplo pressupõe um logon do SQL (DDUser01), mas se você tiver criado um logon do Windows, use-o em vez disso.
USE RevoDeepDive
GO
EXEC sp_addrolemember 'db_owner', 'DDUser01'
GRANT EXECUTE ANY EXTERNAL SCRIPT TO DDUser01
GO
Solucionar problemas de conexões
Esta seção lista alguns problemas comuns que podem ocorrer durante a configuração do banco de dados.
Como posso verificar a conectividade de banco de dados e verificar as consultas SQL?
Antes de executar o código do R usando o servidor, é recomendável verificar se o banco de dados pode ser acessado no ambiente de desenvolvimento do R. O Gerenciador de Servidores no Visual Studio e o SQL Server Management Studio são ferramentas gratuitas com recursos avançados de gerenciamento e conectividade de banco de dados.
Se você não quiser instalar as ferramentas de gerenciamento de banco de dados adicionais, será possível criar um teste de conexão com a instância do SQL Server usando o Administrador de Fonte de Dados ODBC no Painel de Controle. Se o banco de dados estiver configurado corretamente e você inserir o nome de usuário correto e a senha, você deverá conseguir ver o banco de dados que acabou de criar e selecioná-lo como o banco de dados padrão.
Os motivos comuns para falhas de conexão incluem conexões remotas não habilitadas para o servidor e o protocolo de Pipes Nomeados não habilitado. Você pode encontrar mais dicas de solução de problemas neste artigo: Solucionar problemas na conexão com o Mecanismo de Banco de Dados do SQL Server.
O nome de minha tabela tem datareader como prefixo. Por quê?
Ao especificar o esquema padrão para esse usuário como db_datareader, todas as tabelas e outros novos objetos criados por esse usuário são prefixados com o nome do esquema. Um esquema é como uma pasta que você pode adicionar a um banco de dados para organizar objetos. O esquema também define os privilégios de um usuário no banco de dados.
Quando o esquema é associado a um nome de usuário específico, o usuário é o proprietário do esquema. Quando você cria um objeto, você sempre o cria em seu próprio esquema, a menos que você solicite especificamente que ele seja criado em outro esquema.
Por exemplo, se você criar uma tabela com o nome TestData e o esquema padrão for db_datareader, a tabela será criada com o nome
<database_name>.db_datareader.TestData
.Por esse motivo, um banco de dados pode conter várias tabelas com o mesmo nome, desde que as tabelas pertençam a esquemas diferentes.
Se você estiver procurando uma tabela e não especificar um esquema, o servidor de banco de dados procurará um esquema seu. Portanto, não é necessário especificar o nome do esquema ao acessar tabelas em um esquema associado ao seu logon.
Não tenho privilégios DDL. Ainda posso executar o tutorial??
Sim, mas você deve pedir a alguém para pré-carregar os dados nas tabelas de SQL Server e avançar para o próximo tutorial. As funções que exigem privilégios DDL são indicadas no tutorial sempre que possível.
Além disso, peça ao administrador para conceder a você a permissão EXECUTE ANY EXTERNAL SCRIPT. Ela é necessária para a execução do script do R, seja remoto ou usando
sp_execute_external_script
.