Thiago Zavaschi R2 www.zavaschi.com

8Dec/103

SQL Server Analysis Services sobre HTTP/HTTPs

Olá pessoal,

Quando pensamos no SSAS, lembramos que o único modo de autenticação que temos é através de Windows Authentication. Não há algo como o Mixed mode do SQL Server.

Mas os clientes que vão consumir os dados do nosso servidor de análise nem sempre está no mesmo domínio que nós. Então como proceder?

É possível sim (SSAS enterprise only) fazer essa conexão externa através de um pump. Ou seja, você cria uma passagem no seu IIS para o seu servidor de análise.

Primeiramente ative seu IIS no seu servidor. (Aqui estou utilizando o IIS7, os passos para o IIS 6 podem ser observados de uma maneira geral neste post, em inglês: Configuring SSAS over HTTP, apesar de falar do SQL Server 2000, os passos são parecidos).

Crie um site no IIS. Dentro deste site crie um diretório virtual e mapeie para um diretório físico. No meu caso nomeei o diretório como “olap” e mapeei para “C:\inetpub\wwwroot\olap”.

imageMesmo que seja usado HTTP (sem SSL) na porta 80, libere no firewall a porta 80 e a porta 2725, para que o Office consiga fazer o acesso ao servidor de análise.

Copie para a pasta mapeada (C:\inetpub\wwwroot\olap) todos os arquivos do diretório: C:\<local da instalacao do SQL Server>\MSAS10_50.<instancia>\OLAP\bin\isapi.

No meu caso o diretório é:
C:\Program Files\Microsoft SQL Server\MSAS10_50.MSSQLSERVER\OLAP\bin\isapi.

O diretório mapeado fica semelhante ao mostrado abaixo:

image

Após isso vá no gerenciador do IIS, clique no diretório virtual que você criou e depois clique em Mapeamentos de Manipulador (Handler Mapping) e depois clique em “Adicionar Mapeamento de Script” (Add Map Script).

Dê um nome para o mapeamento (no meu caso usei olap mesmo) e mapeie para a dll chamada msmdpump.dll que você copiou do diretório do SQL Server.

image

O último detalhe agora é se o ISS não estiver no mesmo servidor do SSAS. Se este for o cenário você deve acertar o arquivo (com o notepad mesmo) msmdpump.ini que está no diretório mapeado para o diretório virtual. O pedaço que você deve ajustar é o <ServerName>. Se for no mesmo servidor, deixe localhost.

<ConfigurationSettings>
<ServerName>localhost</ServerName>
<SessionTimeout>3600</SessionTimeout>
<ConnectionPoolSize>100</ConnectionPoolSize>
</ConfigurationSettings>

Pronto!

Agora você pode usar como servidor para a conexão o seguinte endereço:

http://<servername/ip>/olap/msmdpump.dll.

Lembrando que você deve passar as credenciais, e estas devem estar no domínio do SSAS. O usuário e senha ficaria algo como:

<domínio>\usuario (com a barra mesmo), e a senha normal do usuário.

Este usuário vai ter as permissões normais definidas nas roles da base do SSAS que você estará fazendo o acesso.

É isso, espero que tenham gostado. :-)

Abraços,
Thiago Zavaschi

Comments (3) Trackbacks (1)
  1. muito interessante isso!
    não conhecia essa feature do SSAS.. muito bom saber disso… é uma pena que seja Enterprise Only…
    quero ver isso funcionando na prática! :D

    abs!

  2. Essa forma funcionou nos sistemas operarcionais Windows Server 2008 , Windows Vista e Windows 7 , mas em windows xp e anteriores não funciona , o MSAS nao encontra o endereço HTTP , alguem sabe alguma solução ?
    Obrigado

  3. Ola Thiago, poderia me ajudar?
    Eu consegui fazer a conexão normal pelo Analysis Server do SQL, no meu caso o link ficou assim “http://10.137.64.110/OLAP/msmdpump.dll”, ele conecta normal, porem ao expandir os data bases ele não carregas os meus cubos.
    Você sabe me dizer o porque isso acontece?


Leave a comment