本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon RDS 上使用 SSAS
部署 SSAS 專案之後,您可以在 SSMS 上直接處理 OLAP 資料庫。
在 RDS 上使用 SSAS
-
在 SSMS 中,使用 Active Directory 網域的使用者名稱和密碼連線到 SSAS。
-
展開 Databases (資料庫)。新部署的 SSAS 資料庫隨即出現。
-
找到連線字串,更新使用者名稱和密碼,為來源 SQL 資料庫提供存取權。這是處理 SSAS 物件的必要操作。
-
若使用表格模式,請執行下列操作:
-
展開 Connections (連線) 索引標籤。
-
開啟連線物件的內容 (按一下滑鼠右鍵) 選單,然後選擇 Properties (屬性)。
-
檢查連線字串中的使用者名稱和密碼。
-
-
若使用多維度模式,請執行下列操作:
-
展開 Data Sources (資料來源 索引標籤)
-
開啟資料來源的內容 (按一下滑鼠右鍵) 選單,然後選擇 Properties (屬性)。
-
檢查連線字串中的使用者名稱和密碼。
-
-
-
開啟您所建立之 SSAS 資料庫的內容 (按一下滑鼠右鍵) 功能表,然後選擇 Process Database (處理資料庫)。
視輸入資料的大小而定,處理作業可能需要幾分鐘才能完成。
主題
為 SSAS 設定通過 Windows 驗證的使用者
主要管理員使用者 (又稱為主要使用者) 可以使用下列程式碼範例,設定通過 Windows 驗證的登入資料,並授予必要的程序許可。這樣做會為網域使用者授予許可,允許執行 SSAS 客戶任務、使用 S3 檔案傳輸程序、建立憑證以及使用 SQL Server Agent Proxy。如需詳細資訊,請參閱登入資料 (資料庫引擎)
您可以視需要授予部分或全部下列許可給 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 Proxy
需先建立 SSAS 憑證和 SSAS Proxy,才能使用 SQL Server Agent 排程 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 Proxy
-
使用下面的 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 子系統 Proxy 的存取權。
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 Agent 排程 SSAS 資料庫處理作業
建立憑證和 Proxy,並授予 SSAS Proxy 的存取權後,就可以建立 SQL Server Agent 任務來排程 SSAS 資料庫處理作業。
排程 SSAS 資料庫處理作業
-
使用 SSMS 或 T-SQL 來建立 SQL Server Agent 任務。下列範例使用 T-SQL。您可以透過 SSMS 或 T-SQL 進一步設定其任務排程。
-
@command參數概述要由 SQL Server Agent 任務執行的 XML for Analysis (XMLA) 命令。此範例設定了 SSAS 多維度資料庫處理作業。 -
@server參數概述 SQL Server Agent 任務的目標 SSAS 伺服器名稱。若要在 SQL Server Agent 任務所在的相同 RDS 資料庫執行個體中呼叫 SSAS 服務,請使用
localhost:2383。若要從 RDS 資料庫執行個體外部呼叫 SSAS 服務,請使用 RDS 端點。如果 RDS 資料庫執行個體是由同一個網域加入,也可以使用 Kerberos Active Directory (AD) 端點 (
)。若使用外部資料庫執行個體,請務必正確設定與 RDS 資料庫執行個體相關聯的 VPC 安全群組,以確保安全連線。your-DB-instance-name.your-AD-domain-name
您可以進一步編輯查詢以支援各種 XMLA 作業。SQL Server Agent 任務建立後,可直接修改 T-SQL 查詢或使用 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 -
從 Proxy 撤銷 SSAS 存取權
您可以撤銷 SSAS 子系統的存取權,並使用下列預存程序刪除 SSAS Proxy。
撤銷存取權並刪除代理伺服器
-
撤銷子系統存取權。
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