Uso de SSAS en Amazon RDS - Amazon Relational Database Service

Uso de SSAS en Amazon RDS

Después de implementar el proyecto SSAS, puede procesar directamente la base de datos OLAP en SSMS.

Para utilizar SSAS en RDS
  1. En SSMS, conéctese a SSAS mediante el nombre de usuario y la contraseña del dominio de Active Directory.

  2. Expanda Databases (Bases de datos). Aparece la base de datos SSAS recién implementada.

  3. Localice la cadena de conexión y actualice el nombre de usuario y la contraseña para dar acceso a la base de datos SQL de origen. Esta operación es necesaria para procesar los objetos de SSAS.

    1. Para el modo tabular, haga lo siguiente:

      1. Despliegue la pestaña Connections (Conexiones).

      2. Abra el menú contextual (con el botón derecho del ratón) del objeto de conexión y elija Properties (Propiedades).

      3. Actualice el nombre de usuario y la contraseña en la cadena de conexión.

    2. Para el modo multidimensional, haga lo siguiente:

      1. Despliegue la pestaña Data Sources (Orígenes de datos).

      2. Abra el menú contextual (con el botón derecho del ratón) del objeto origen de datos y, a continuación, elija Properties (Propiedades).

      3. Actualice el nombre de usuario y la contraseña en la cadena de conexión.

  4. Abra el menú contextual (haga clic con el botón derecho) de la base de datos SSAS que ha creado y elija Process Database (Procesar base de datos).

    Según el tamaño de los datos de entrada, la operación de procesamiento puede tardar varios minutos en completarse.

Configuración de un usuario autenticado por Windows para SSAS

El usuario administrador principal (a veces llamado usuario maestro) puede utilizar el siguiente ejemplo de código para configurar un inicio de sesión autenticado por Windows y conceder los permisos de procedimiento necesarios. Al hacer esto se conceden permisos al usuario de dominio para ejecutar tareas de cliente de SSAS, utilizar procedimientos de transferencia de archivos S3, crear credenciales y trabajar con el proxy de SQL Server Agent. Para obtener más información, consulte Credenciales (Motor de base de datos) y Crear un proxy de SQL Server Agent en la documentación de Microsoft.

Puede conceder algunos o todos los permisos siguientes, según sea necesario, a los usuarios autenticados de 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

Agregar un usuario de dominio como administrador de bases de datos

Puede agregar un usuario de dominio como administrador de base de datos SSAS de las siguientes maneras:

  • Un administrador de base de datos puede usar SSMS para crear un rol con privilegios de admin y, a continuación, agregar usuarios a dicho rol.

  • Puede utilizar el siguiente procedimiento almacenado.

    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';

    Se requieren los siguientes parámetros:

    • @task_type – el tipo de la tarea MSBI; en este caso SSAS_ADD_DB_ADMIN_MEMBER.

    • @database_name: el nombre de la base de datos SSAS a la que concede privilegios de administrador.

    • @ssas_role_name: el nombre del rol de administrador de base de datos SSAS. Si el rol no existe, se crea.

    • @ssas_role_member: el usuario de la base de datos SSAS que va a agregar al rol de administrador.

Creación de un proxy de SSAS

Para poder programar el procesamiento de la base de datos de SSAS mediante SQL Server Agent, cree una credencial de SSAS y un proxy de SSAS. Ejecute estos procedimientos como usuario autenticado por Windows.

Para crear la credencial de SSAS
  • Cree la credencial para el proxy. Para ello, puede utilizar SSMS o la siguiente instrucción SQL.

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

    IDENTITY debe ser un inicio de sesión autenticado por dominio. Reemplace mysecret por la contraseña para el inicio de sesión autenticado por el dominio.

Para crear el proxy de SSAS
  1. Utilice la siguiente instrucción SQL para crear el proxy.

    USE [msdb] GO EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSAS_Proxy',@credential_name=N'SSAS_Credential',@description=N'' GO
  2. Utilice la siguiente instrucción SQL para conceder acceso al proxy a otros usuarios.

    USE [msdb] GO EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSAS_Proxy',@login_name=N'mydomain\user_name' GO
  3. Utilice la siguiente instrucción SQL para conceder acceso al subsistema de SSAS al proxy.

    USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS' GO
Para consultar el proxy y las concesiones en el proxy
  1. Utilice la siguiente instrucción SQL para consultar los beneficiarios del proxy.

    USE [msdb] GO EXEC sp_help_proxy GO
  2. Utilice la siguiente instrucción SQL para consultar las concesiones del subsistema.

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

Programación del procesamiento de bases de datos SSAS mediante SQL Server Agent

Después de crear la credencial y el proxy y conceder acceso a SSAS al proxy, puede crear un trabajo de SQL Server Agent para programar el procesamiento de la base de datos de SSAS.

Para programar el procesamiento de base de datos de SSAS
  • Use SSMS o T-SQL para crear el trabajo de SQL Server Agent. En el siguiente ejemplo se utiliza T-SQL. Además, puede configurar la programación de trabajo a través de SSMS o T-SQL.

    • El parámetro @command indica el comando XML for Analysis (XMLA) que debe ejecutar el trabajo de SQL Server Agent Este ejemplo configura el procesamiento de la base de datos multidimensional de SSAS.

    • El parámetro @server indica el nombre del servidor SSAS de destino del trabajo de SQL Server Agent.

      Para llamar al servicio de SSAS dentro de la misma instancia de base de datos RDS donde reside el trabajo de SQL Server Agent, utilice localhost:2383.

      Para llamar al servicio de SSAS desde fuera de la instancia de base de datos RDS, utilice el punto de conexión RDS. También puede utilizar el punto de conexión de Kerberos Active Directory (AD) (your-DB-instance-name.your-AD-domain-name) si las instancias de la base de datos RDS están unidas por el mismo dominio. En el caso de las instancias de base de datos externas, asegúrese de configurar correctamente el grupo de seguridad de la VPC asociado a la instancia de base de datos RDS para obtener una conexión segura.

    Puede editar aún más la consulta para admitir varias operaciones XMLA. Realice las ediciones modificando directamente la consulta T-SQL o mediante la UI de SSMS tras la creación del trabajo de 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

Revocación de acceso de SSAS desde el proxy

Puede revocar el acceso al subsistema de SSAS y eliminar el proxy de SSAS mediante los siguientes procedimientos almacenados.

Para revocar el acceso y eliminar el proxy
  1. Revoque el acceso al subsistema.

    USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS' GO
  2. Revoque las concesiones en el proxy.

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

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