問題:
在有些場景下,數據中心會分為不同的服務器場:數據庫場和應用程序場。服務器場間有嚴格的防火牆控制,其中數據庫場只能建立從應用程序場的防火牆穿越,也就是說不允許任何客戶端直接連接到防火牆。
這種策略對於數據庫引擎來說沒什么問題,但是對於分析服務來說就被完全限制住了,通常我們都是通過Excel直接連接分析服務數據庫的,並且通過分析服務的角色來控制對數據的訪問權限。那么是否有什么方法可以解決這個問題呢?
解決思路:
我們知道SSAS是可以通過http的方式來訪問的,那么我們只要讓這個站點接受windows方式的身份驗證就可以簡介的實現excel客戶端到分析服務數據庫的連接。
實驗環境:
Windows 8.1 + IIS
SQL Server 2012
Adveuture Works微軟官方示例數據庫,這里用到的是分析服務數據庫。
實驗步驟:
首先,確保IIS已經被填加,然后windows身份模式已經被安裝。
分別在操作系統下建立測試賬戶aaa和bbb依次填加到這兩個組中。
在分析服務數據庫下,建立兩個角色, Team1和Team2。
找到維度數據的設置,分別指定第一個角色擁有Department維度下的前兩個成員,另一個角色擁有這個維度下的后三個成員。
填加完畢,確認兩個組都被填加到分析服務數據庫中。
接下來測試一下角色權限控制的結果,用管理員身份登錄,可以看到Department下的所有維度成員。
用aaa賬戶登錄Management Studio(提示,按住Shift右鍵單擊),可以看到其隸屬的Team1角色只能看到前兩個成員。
打開IIS,配置站點,打開Windows身份驗證模式。
瀏覽數據,可以看到返回的xml結果頁面。
用這個URL地址連接分析服務,用aaa賬戶連接,可以看到通過http的方式識別出了當前客戶端的賬戶。
並且里面的數據接受了分析服務數據庫的權限控制。
接下來在Excel中實驗下,右鍵單擊Excel.exe,選擇使用指定的賬戶運行。
數據賬戶aaa的信息,使Excel以這個身份運行。
在Excel下新建透視表。
選擇連接到分析服務數據庫。
在服務器名稱下輸入URL。
選擇連接到Adventure Works多維數據集。在微軟的這個示例數據庫下,這個是最全的多維數據集,其它能看到的數據集實際上都是出自這個數據集的一個透視。
在Excel的透視表下,拖拽Department維度,可以看到已經接受了分析服務的角色權限控制。
保存這個Excel文件,再用管理員帳號打開這個文件,刷新透視表,可以看到根據分析服務數據庫的權限設定,返回了Department下的全部維度成員數據。
結論:
通過http的方式連接到分析服務數據庫,可以看到通過站點的windows身份驗證模式,是可以接受分析服務數據庫的角色權限控制的。通過這種方法,就可以通過應用程序服務器間接的實現對於服務器場中的分析服務數據庫的訪問,並且跟直接連接到分析服務數據庫的效果是一樣的。