問題:
在有些場景下,資料中心會分為不同的伺服器場:資料庫場和應用程式場。伺服器場間有嚴格的防火牆控制,其中資料庫場只能建立從應用程式場的防火牆穿越,也就是說不允許任何客戶端直接連線到防火牆。
這種策略對於資料庫引擎來說沒什麼問題,但是對於分析服務來說就被完全限制住了,通常我們都是通過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身份驗證模式,是可以接受分析服務資料庫的角色許可權控制的。通過這種方法,就可以通過應用程式伺服器間接的實現對於伺服器場中的分析服務資料庫的訪問,並且跟直接連線到分析服務資料庫的效果是一樣的。