Amazon RDS에서 SSAS 사용
SSAS 프로젝트를 배포한 후 SSMS에서 OLAP 데이터베이스를 직접 처리할 수 있습니다.
RDS에서 SSAS를 사용하려면
-
SSMS에서 Active Directory 도메인의 사용자 이름과 암호를 사용하여 SSAS에 연결합니다.
-
데이터베이스를 확장합니다. 새로 배포된 SSAS 데이터베이스가 나타납니다.
-
연결 문자열을 찾고 사용자 이름과 암호를 업데이트하여 원본 SQL 데이터베이스에 대한 액세스 권한을 부여합니다. 이 작업은 SSAS 객체를 처리하는 데 필요합니다.
-
테이블형 모드의 경우 다음을 수행합니다.
-
연결(Connections) 탭을 확장합니다.
-
연결 객체의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 속성(Properties)을 선택합니다.
-
연결 문자열에서 사용자 이름과 암호를 업데이트합니다.
-
-
다차원 모드의 경우 다음을 수행합니다.
-
데이터 원본(Data Sources) 탭을 확장합니다.
-
데이터 원본 객체의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 연 다음 속성(Properties)을 선택합니다.
-
연결 문자열에서 사용자 이름과 암호를 업데이트합니다.
-
-
-
생성한 SSAS 데이터베이스에 대한 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 열고 데이터베이스 처리를 선택합니다.
입력 데이터의 크기에 따라 처리 작업을 완료하는 데 몇 분 정도 걸릴 수 있습니다.
주제
SSAS용 Windows 인증 사용자 설정
기본 관리자 사용자(마스터 사용자라고도 함)는 다음 코드 예제를 사용하여 Windows 인증 로그인을 설정하고 필요한 절차 권한을 부여할 수 있습니다. 이렇게 하면 도메인 사용자에게 SSAS 고객 태스크를 실행하고, S3 파일 전송 절차를 사용하고, 자격 증명을 만들고, SQL Server 에이전트 프록시로 작업할 수 있는 권한이 부여됩니다. 자세한 내용은 Microsoft 설명서의 자격 증명(데이터베이스 엔진)
필요에 따라 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
도메인 사용자를 데이터베이스 관리자로 추가
다음과 같은 방법으로 도메인 사용자를 SSAS 데이터베이스 관리자로 추가할 수 있습니다.
-
데이터베이스 관리자는 SSMS를 사용하여
admin
권한이 있는 역할을 생성한 다음 해당 역할에 사용자를 추가할 수 있습니다. -
다음 저장 프로시저를 사용할 수 있습니다.
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
';다음 파라미터는 필수 파라미터입니다.
-
@task_type
– MSBI 작업의 유형입니다(이 경우SSAS_ADD_DB_ADMIN_MEMBER
). -
@database_name
– 관리자 권한을 부여할 SSAS 데이터베이스의 이름입니다. -
@ssas_role_name
– SSAS 데이터베이스 관리자 역할 이름입니다. 역할이 아직 존재하지 않으면 역할이 생성됩니다. -
@ssas_role_member
– 관리자 역할에 추가할 SSAS 데이터베이스 사용자입니다.
-
SSAS 프록시 생성
SQL Server 에이전트를 사용하여 SSAS 데이터베이스 처리를 예약하려면 SSAS 자격 증명과 SSAS 프록시를 생성합니다. Windows 인증 사용자로 다음 절차를 실행합니다.
SSAS 자격 증명 생성
-
프록시에 대한 자격 증명을 생성합니다. 이렇게 하려면 SSMS 또는 다음 SQL 문을 사용하면 됩니다.
USE [master] GO CREATE CREDENTIAL [SSAS_Credential] WITH IDENTITY = N'
mydomain
\user_name
', SECRET = N'mysecret
' GO참고
IDENTITY
는 도메인 인증 로그인이어야 합니다.
를 도메인 인증 로그인에 대한 암호로 바꿉니다.mysecret
SSAS 프록시 생성
-
다음 SQL 문을 사용하여 프록시를 생성합니다.
USE [msdb] GO EXEC msdb.dbo.sp_add_proxy @proxy_name=N'SSAS_Proxy',@credential_name=N'SSAS_Credential',@description=N'' GO
-
다음 SQL 문을 사용하여 프록시에 대한 액세스 권한을 다른 사용자에게 부여합니다.
USE [msdb] GO EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name=N'SSAS_Proxy',@login_name=N'
mydomain
\user_name
' GO -
다음 SQL 문을 사용하여 SSAS 하위 시스템에 프록시에 대한 액세스 권한을 부여합니다.
USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='GRANT_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS' GO
프록시 및 프록시의 부여를 보려면
-
다음 SQL 문을 사용하여 프록시의 피부여자를 확인합니다.
USE [msdb] GO EXEC sp_help_proxy GO
-
다음 SQL 문을 사용하여 하위 시스템 부여를 확인합니다.
USE [msdb] GO EXEC msdb.dbo.sp_enum_proxy_for_subsystem GO
SQL Server 에이전트를 사용하여 SSAS 데이터베이스 처리 예약
자격 증명 및 프록시를 생성하고 SSAS에 프록시에 대한 액세스 권한을 부여한 후 SSAS 데이터베이스 처리를 예약하는 SQL Server 에이전트 작업을 생성할 수 있습니다.
SSAS 데이터베이스 처리 예약
-
SSMS 또는 T-SQL을 사용하여 SQL Server 에이전트 작업을 생성합니다. 다음 예제에서는 T-SQL을 사용합니다. SSMS 또는 T-SQL을 통해 작업 일정을 추가로 구성할 수 있습니다.
-
@command
파라미터는 SQL Server 에이전트 작업에서 실행할 XMLA(XML for Analysis) 명령을 간략하게 설명합니다. 이 예에서는 SSAS 다차원 데이터베이스 처리를 구성합니다. -
@server
파라미터는 SQL Server 에이전트 작업의 대상 SSAS 서버 이름을 간략하게 설명합니다.SQL Server 에이전트 작업이 있는 동일한 RDS DB 인스턴스 내에서 SSAS 서비스를 호출하려면
localhost:2383
을 호출합니다.RDS DB 인스턴스 외부에서 SSAS 서비스를 호출하려면 RDS 엔드포인트를 사용합니다. RDS DB 인스턴스가 동일한 도메인에 가입되어 있는 경우 Kerberos Active Directory(AD) 엔드포인트(
)를 사용할 수도 있습니다. 외부 DB 인스턴스의 경우 보안 연결을 위해 RDS DB 인스턴스와 연결된 VPC 보안 그룹을 올바르게 구성해야 합니다.your-DB-instance-name
.your-AD-domain-name
다양한 XMLA 작업을 지원하도록 쿼리를 추가로 편집할 수 있습니다. T-SQL 쿼리를 직접 수정하거나 SQL Server 에이전트 작업 생성 후 SSMS UI를 사용하여 편집합니다.
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
-
프록시에서 SSAS 액세스 취소
다음 저장 프로시저를 사용하여 SSAS 하위 시스템에 대한 액세스를 취소하고 SSAS 프록시를 삭제할 수 있습니다.
액세스를 취소하고 프록시를 삭제하려면
-
하위 시스템 액세스를 취소합니다.
USE [msdb] GO EXEC msdb.dbo.rds_sqlagent_proxy @task_type='REVOKE_SUBSYSTEM_ACCESS',@proxy_name='SSAS_Proxy',@proxy_subsystem='SSAS' GO
-
프록시에 대한 부여를 취소합니다.
USE [msdb] GO EXEC msdb.dbo.sp_revoke_login_from_proxy @proxy_name=N'SSAS_Proxy',@name=N'
mydomain
\user_name
' GO -
프록시를 삭제합니다.
USE [msdb] GO EXEC dbo.sp_delete_proxy @proxy_name = N'SSAS_Proxy' GO