Como usar o SSAS no Amazon RDS - Amazon Relational Database Service

Como usar o SSAS no Amazon RDS

Depois de implantar o projeto do SSAS, será possível processar diretamente o banco de dados OLAP no SSMS.

Como usar o SSAS no RDS
  1. No SSMS, conecte-se ao SSAS usando o nome de usuário e a senha do domínio do Active Directory.

  2. Expanda Databases (Bancos de dados). Será exibido o banco de dados recém-implantado do SSAS.

  3. Localize a string de conexão e atualize o nome de usuário e a senha para dar acesso ao banco de dados da fonte do SQL. Isso é necessário para processar objetos SSAS.

    1. Para o modo Tabular, faça o seguinte:

      1. Escolha a guia Connections (Conexões).

      2. Abra o menu de contexto (clique com o botão direito do mouse) do objeto de conexão e escolha Properties (Propriedades).

      3. Atualize o nome de usuário e a senha na string de conexão.

    2. Para o modo Multidimensional, faça o seguinte:

      1. Expanda a guia Data Sources (Origem dos dados).

      2. Abra o menu de contexto (clique com o botão direito do mouse) para o objeto de origem dos dados e escolha Properties (Propriedades).

      3. Atualize o nome de usuário e a senha na string de conexão.

  4. Abra o menu de contexto (clique com o botão direito do mouse) para o banco de dados do SSAS que você criou e selecione Process Database (Processar banco de dados).

    Dependendo do tamanho dos dados de entrada, a operação de processamento pode levar vários minutos para ser concluída.

Configurar um usuário autenticado pelo Windows para o SSAS

O usuário administrador principal (às vezes chamado de usuário primário) pode usar o exemplo de código a seguir para configurar um logon autenticado pelo Windows e conceder as permissões de procedimento necessárias. Isso concede permissões ao usuário do domínio para executar tarefas do cliente SSAS, usar procedimentos de transferência de arquivos do S3, criar credenciais e trabalhar com o proxy do SQL Server Agent. Para obter mais informações, consulte Credenciais (mecanismo de banco de dados) e Criar um proxy do SQL Server Agent na documentação da Microsoft.

Você pode conceder algumas ou todas as seguintes permissões, conforme necessário, aos usuários autenticados pelo Windows.

-- Create a server-level domain user login, if it doesn't already exist USE [master] GO CREATE LOGIN [mydomain\user_name] FROM WINDOWS GO -- Create domain user, if it doesn't already exist USE [msdb] GO CREATE USER [mydomain\user_name] FOR LOGIN [mydomain\user_name] GO -- Grant necessary privileges to the domain user USE [master] GO GRANT ALTER ANY CREDENTIAL TO [mydomain\user_name] GO USE [msdb] GO GRANT EXEC ON msdb.dbo.rds_msbi_task TO [mydomain\user_name] with grant option GRANT SELECT ON msdb.dbo.rds_fn_task_status TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_task_status TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_cancel_task TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_download_from_s3 TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_upload_to_s3 TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_delete_from_filesystem TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_gather_file_details TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_add_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_update_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_grant_login_to_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_revoke_login_from_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_delete_proxy TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_enum_login_for_proxy to [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.sp_enum_proxy_for_subsystem TO [mydomain\user_name] with grant option GRANT EXEC ON msdb.dbo.rds_sqlagent_proxy TO [mydomain\user_name] with grant option ALTER ROLE [SQLAgentUserRole] ADD MEMBER [mydomain\user_name] GO

Adicionar um usuário de domínio como administrador de banco de dados

É possível adicionar um usuário de domínio como administrador de banco de dados do SSAS das seguintes maneiras:

  • Um administrador de banco de dados pode usar o SSMS para criar uma função com privilégios admin e adicionar usuários a essa função.

  • É possível usar o procedimento armazenado a seguir.

    exec msdb.dbo.rds_msbi_task @task_type='SSAS_ADD_DB_ADMIN_MEMBER', @database_name='myssasdb', @ssas_role_name='exampleRole', @ssas_role_member='domain_name\domain_user_name';

    Os seguintes parâmetros são obrigatórios:

    • @task_type – O tipo da tarefa do MSBI, nesse caso SSAS_ADD_DB_ADMIN_MEMBER.

    • @database_name – O nome do banco de dados do SSAS ao qual você está concedendo privilégios de administrador.

    • @ssas_role_name – O nome da função de administrador de banco de dados do SSAS. Se a função ainda não existir, ela será criada.

    • @ssas_role_member – O usuário do banco de dados do SSAS que você está adicionando à função de administrador.

Criar um proxy do SSAS

Para poder programar o processamento do banco de dados do SSAS usando o SQL Server Agent, crie uma credencial do SSAS e um proxy SSAS. Execute esses procedimentos como um usuário autenticado pelo Windows.

Para criar a credencial do SSAS
  • Crie a credencial para o proxy. Para fazer isso, você pode usar o SSMS ou a seguinte instrução SQL.

    USE [master] GO CREATE CREDENTIAL [SSAS_Credential] WITH IDENTITY = N'mydomain\user_name', SECRET = N'mysecret' GO
    nota

    IDENTITY deve ser um login autenticado por domínio. Substitua mysecret pela senha do login autenticado por domínio.

Para criar o proxy do SSIS
  1. Use a seguinte instrução SQL para criar o proxy.

    USE [msdb] GO EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSAS_Proxy',@credential_name=N'SSAS_Credential',@description=N'' GO
  2. Use a seguinte instrução SQL para conceder acesso ao proxy para outros usuários.

    USE [msdb] GO EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSAS_Proxy',@login_name=N'mydomain\user_name' GO
  3. Use a seguinte instrução SQL para dar ao subsistema do SSAS acesso ao proxy.

    USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS' GO
Como visualizar o proxy e as concessões no proxy
  1. Use a seguinte instrução SQL para visualizar os beneficiários do proxy.

    USE [msdb] GO EXEC sp_help_proxy GO
  2. Use a seguinte instrução SQL para visualizar as concessões do subsistema.

    USE [msdb] GO EXEC msdb.dbo.sp_enum_proxy_for_subsystem GO

Programar o processamento de banco de dados do SSAS usando o SQL Server Agent

Depois de criar a credencial e o proxy e conceder acesso SSAS ao proxy, você pode criar um trabalho do SQL Server Agent para programar o processamento do banco de dados do SSAS.

Para programar processamento de banco de dados do SSAS
  • Use o SSMS ou o T-SQL para criar o trabalho do SQL Server Agent. O exemplo a seguir usa T-SQL. Você pode configurar ainda mais seu programa de trabalho por meio do SSMS ou o T-SQL.

    • O parâmetro @command descreve o comando XML for Analysis (XMLA) a ser executado pelo trabalho do SQL Server Agent. Este exemplo configura o processamento de banco de dados multidimensional do SSAS.

    • O parâmetro @server descreve o nome do servidor do SSAS de destino do trabalho do SQL Server Agent.

      Para chamar o serviço do SSAS na mesma instância de banco de dados do RDS em que o trabalho do SQL Server Agent reside, use localhost:2383.

      Para chamar o serviço do SSAS de fora da instância de banco de dados do RDS, use o endpoint do RDS. Você também pode usar o endpoint do Kerberos Active Directory (AD) (your-DB-instance-name.your-AD-domain-name) se as instâncias de banco de dados do RDS forem unidas pelo mesmo domínio. Para instâncias de banco de dados externas, certifique-se de configurar corretamente o grupo de segurança da VPC associado à instância de banco de dados do RDS para uma conexão segura.

    Você pode editar ainda mais a consulta para oferecer suporte a várias operações XMLA. Faça edições modificando diretamente a consulta T-SQL ou usando a interface do usuário do SSMS após a criação do trabalho do SQL Server Agent.

    USE [msdb] GO DECLARE @jobId BINARY(16) EXEC msdb.dbo.sp_add_job @job_name=N'SSAS_Job', @enabled=1, @notify_level_eventlog=0, @notify_level_email=0, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @category_name=N'[Uncategorized (Local)]', @job_id = @jobId OUTPUT GO EXEC msdb.dbo.sp_add_jobserver @job_name=N'SSAS_Job', @server_name = N'(local)' GO EXEC msdb.dbo.sp_add_jobstep @job_name=N'SSAS_Job', @step_name=N'Process_SSAS_Object', @step_id=1, @cmdexec_success_code=0, @on_success_action=1, @on_success_step_id=0, @on_fail_action=2, @on_fail_step_id=0, @retry_attempts=0, @retry_interval=0, @os_run_priority=0, @subsystem=N'ANALYSISCOMMAND', @command=N'<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Parallel> <Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300" xmlns:ddl400="http://schemas.microsoft.com/analysisservices/2012/engine/400" xmlns:ddl400_400="http://schemas.microsoft.com/analysisservices/2012/engine/400/400" xmlns:ddl500="http://schemas.microsoft.com/analysisservices/2013/engine/500" xmlns:ddl500_500="http://schemas.microsoft.com/analysisservices/2013/engine/500/500"> <Object> <DatabaseID>Your_SSAS_Database_ID</DatabaseID> </Object> <Type>ProcessFull</Type> <WriteBackTableCreation>UseExisting</WriteBackTableCreation> </Process> </Parallel> </Batch>', @server=N'localhost:2383', @database_name=N'master', @flags=0, @proxy_name=N'SSAS_Proxy' GO

Revogar o acesso do SSAS do proxy

Você pode revogar o acesso ao subsistema SSAS e excluir o proxy SSAS usando os procedimentos armazenados a seguir.

Como revogar o acesso e excluir o proxy
  1. Revogue o acesso ao subsistema.

    USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS' GO
  2. Revogue as concessões no proxy.

    USE [msdb] GO EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSAS_Proxy',@name=N'mydomain\user_name' GO
  3. Exclua o proxy.

    USE [msdb] GO EXEC dbo.sp_delete_proxy @proxy_name = N'SSAS_Proxy' GO