Analysis Services PowerShell
SQL Server 2014 Analysis Services (SSAS) inclui um provedor e cmdlets do SQLAS (Analysis Services PowerShell) para que você possa usar Windows PowerShell para navegar, administrar e consultar objetos do Analysis Services.
O Analysis Services PowerShell consiste no seguinte:
Provedor
SQLAS
usado para navegar na hierarquia do AMO (Objetos de Gerenciamento de Análise).Cmdlet
Invoke-ASCmd
usado para executar scripts MDX, DMX ou XMLA.Cmdlets específicos de tarefas para operações rotineiras, como processamento, gerenciamento de funções, gerenciamento de partições, backup e restauração.
Neste artigo
Versões e modos compatíveis do Analysis Services
Requisitos de autenticação e considerações de segurança
Tarefas do Analysis Services PowerShell
Para obter mais informações sobre sintaxe e exemplos, consulte Referência do PowerShell do Analysis Services.
Pré-requisitos
O Windows PowerShell 2.0 deve estar instalado. Ele é instalado por padrão em versões mais recentes dos sistemas operacionais Windows. Para obter mais informações, consulte Instalar Windows PowerShell 2.0
Você deve instalar um recurso do SQL Server que inclui o módulo do SQL Server PowerShell (SQLPS) e bibliotecas de cliente. O modo mais fácil de fazer isto é instalar o SQL Server Management Studio, que inclui o recurso do PowerShell e bibliotecas de cliente automaticamente. Um módulo SQLPS (SQL Server PowerShell) contém os provedores PowerShell e cmdlets para todos os recursos do SQL Server, incluindo o módulo SQLASCmdlets e o provedor SQLAS usados para navegar na hierarquia de objetos do Analysis Services.
Você deve importar o módulo SQLPS antes de poder usar o provedor e os SQLAS
cmdlets. O provedor SQLAS é uma extensão do SQLServer
provedor. Há várias maneiras de importar o módulo SQLPS. Para obter mais informações, consulte Importar o módulo SQLPS.
O acesso remoto a uma instância do Analysis Services exige a habilitação da administração remota e do compartilhamento de arquivos. Para obter mais informações, consulte Habilitar Administração Remota neste tópico.
Versões e modos compatíveis do Analysis Services
Atualmente, o Analysis Services PowerShell tem suporte em qualquer edição do SQL Server 2014 Analysis Services em execução no Windows Server 2008 R2, Windows Server 2008 SP1 ou Windows 7.
A tabela a seguir mostra a disponibilidade do Analysis Services PowerShell em diferentes contextos.
Contexto | Disponibilidade de recursos do PowerShell |
---|---|
Instâncias e bancos de dados multidimensionais | Com suporte para administração local e remota. A partição de mesclagem exige uma conexão local. |
Instâncias e bancos de dados tabulares | Com suporte para administração local e remota. Para obter mais informações, consulte um blog de agosto de 2011 sobre Gerenciar modelos tabulares usando o PowerShell. |
Instâncias e bancos de dados PowerPivot para SharePoint | Suporte limitado. É possível usar conexões HTTP e o provedor SQLAS para visualizar informações da instância e do banco de dados. Porém, não há suporte para usar os cmdlets. Você não deve usar o Analysis Services PowerShell para fazer backup e restauração de banco de dados PowerPivot na memória, nem deve adicionar ou remover funções, processar os dados ou executar script XMLA arbitrário. Para fins de configuração, o PowerPivot para SharePoint tem suporte interno ao PowerShell que é fornecido separadamente. Para obter mais informações, consulte Referência do PowerShell para PowerPivot para SharePoint. |
Conexões nativas a cubos locais "Data Source=c:\backup\test.cub" |
Sem suporte. |
Conexões HTTP a arquivos de conexão do modelo semântico BI (.bism) no SharePoint "Fonte de dados=https://server/shared_docs/name.bism" |
Sem suporte. |
Conexões inseridas em bancos de dados PowerPivot "Data Source=$Embedded$" |
Sem suporte. |
Contexto de servidor local em procedimentos armazenados do Analysis Services "Fonte de dados=*" |
Sem suporte. |
Requisitos de autenticação e considerações de segurança
Ao conectar-se ao Analysis Services, você deve fazer a conexão usando uma identidade de usuário do Windows. Na maioria das vezes, a conexão é feita usando uma segurança integrada do Windows, onde a identidade do usuário atual define o contexto de segurança sob o qual as operações de servidor são realizadas. No entanto, outros métodos de autenticação ficam disponíveis quando você configura o acesso de HTTP para o Analysis Services. Esta seção explica como o tipo de conexão determina quais opções de autenticação você pode usar.
As conexões para o Analysis Services são caracterizadas como conexões nativas ou conexões HTTP. Uma conexão nativa é uma conexão direta de um aplicativo cliente para o servidor. Em uma sessão do PowerShell, o cliente PowerShell usa o provedor OLE DB para o Analysis Services conectar-se diretamente a uma instância do Analysis Services. Uma conexão nativa é sempre feita usando uma segurança integrada do Windows, onde o Analysis Services PowerShell é executado como o usuário atual. O Analysis Services não dá suporte à representação. Se você desejar realizar uma operação como um usuário específico, deverá iniciar a sessão do PowerShell como esse usuário.
As conexões HTTP são feitas indiretamente por meio do IIS, permitindo opções adicionais de autenticação, como autenticação Básica, para conectar-se a uma instância do Analysis Services. Como o IIS dá suporte à representação, você pode fornecer uma cadeia de conexão que inclui credenciais que o IIS usará para representar ao fazer uma conexão. Para fornecer credenciais, você pode usar o parâmetro -Credential.
Usando o parâmetro -Credential no PowerShell
O parâmetro -Credential usa um objeto PSCredential que especifica um nome de usuário e uma senha. No Analysis Services PowerShell, o parâmetro -Credential está disponível para cmdlets que fazem uma solicitação de conexão para o Analysis Services, em vez de cmdlets executados no contexto de uma conexão existente. Os cmdlets que fazem uma solicitação de conexão incluem Invoke-ASCmd, Backup-ASDatabase e Restore-ASDatabase. Para esses cmdlets, o parâmetro -Credential pode ser usado, supondo que os seguintes critérios sejam atendidos:
O servidor está configurado para acesso HTTP, o que significa que o IIS trata a conexão, lê o nome de usuário e a senha, e representa a identidade do usuário ao conectar-se ao Analysis Services. Para obter mais informações, consulte Configurar o acesso HTTP ao Analysis Services no IIS (Serviços de Informações da Internet) 8.0.
O diretório virtual IIS que foi criado para acesso HTTP do Analysis Services está configurado para autenticação Básica.
O nome de usuário e a senha fornecidos pelo objeto de credencial são resolvidos para uma identidade de usuário do Windows. O Analysis Services usa esta identidade como usuário atual. Se o usuário não for Windows ou não tiver permissões suficientes para realizar a operação solicitada, a solicitação falhará.
Para criar um objeto de credencial, você pode usar o cmdlet Get-Credential para coletar as credenciais do operador. Você poderá então usar o objeto de credencial em um comando que conecta-se ao Analysis Services. O exemplo a seguir ilustra a sintaxe uma abordagem. Neste exemplo, a conexão é com uma instância local (SQLSERVER:\SQLAS\HTTP_DS
) configurada para acesso HTTP.
$cred = Get-Credential adventureworks\dbadmin
Invoke-ASCmd -Inputfile:"c:\discoverconnections.xmla" -Credential:$cred
Ao usar autenticação Básica, você sempre deve usar HTTP com SSL, para que o nome de usuário e as senhas sejam enviados por meio de uma conexão criptografada. Para obter mais informações, consulte Configurar a camada de soquetes seguros no IIS 7.0 e Configurar a Autenticação Básica (IIS 7).
Lembre-se de que as credenciais, as consultas e os comandos que você fornecer no PowerShell são passados inalterados para a camada de transporte. Incluir conteúdo confidencial em seus scripts aumenta o risco de um ataque de injeção mal-intencionado.
Fornecendo uma senha como um objeto Microsoft.Secure.String
Algumas operações, como backup e restauração, dão suporte a opções de criptografia que são ativadas quando você fornece uma senha no comando. Fornecer a senha sinaliza ao Analysis Services para criptografar ou descriptografar o arquivo de backup. No Analysis Services, essa senha é instanciada como um objeto de cadeia de caracteres seguro. O exemplo a seguir fornece uma ilustração de como coletar uma senha do operador em tempo de execução.
$pwd = read-host -AsSecureString -Prompt "Password"
$pwd -is [System.IDisposable]
Você agora pode fazer backup ou restaurar um arquivo de banco de dados criptografado, passando a variável $pwd para o parâmetro da senha. Para exibir um exemplo completo que combina essa ilustração com outros cmdlets, consulte Cmdlet Backup-ASDatabase e cmdlet Restore-ASDatabase.
Como uma etapa de acompanhamento, remova a senha e a variável da sessão.
$pwd.Dispose()
Remove-Variable -Name pwd
Tarefas do Analysis Services PowerShell
É possível executar o Analysis Services PowerShell por meio do shell de gerenciamento do Windows PowerShell ou de um prompt de comando do Windows. Não há suporte para a execução do Analysis Services PowerShell do SQL Server Management Studio.
Esta seção descreve as tarefas comuns para usar o Analysis Services PowerShell.
Carregar o provedor e cmdlets do Analysis Services
O provedor do Analysis Services é uma extensão do provedor raiz do SQL Server que se torna disponível quando você importa o módulo SQLPS. Os cmdlets do Analysis Services são carregados simultaneamente; você também pode carregá-los de forma independente se desejar usá-los sem o provedor.
Execute o cmdlet Import-module para carregar o SQLPS que inclui toda a funcionalidade do Analysis Services PowerShell. Se você não conseguir importar o módulo, poderá alterar temporariamente a política de execução para irrestrita com a finalidade de carregar o módulo. Para obter mais informações, consulte Importar o módulo SQLPS.
Import-Module "sqlps"
Opcionalmente, use
import-module "sqlps" -disablenamechecking
para suprimir o aviso sobre nomes de verbos não aprovados.Para carregar apenas os cmdlets do Analysis Services específicos da tarefa, sem o provedor do Analysis Services ou o cmdlet Invoke-ASCmd, é possível carregar o módulo SQLASCmdlets como uma operação independente.
Import-Module "sqlascmdlets"
Habilitar a administração remota
Antes de poder usar o Analysis Services PowerShell com uma instância remota do Analysis Services, é necessário primeiramente habilitar a administração remota e o compartilhamento de arquivos. O erro a seguir indica um problema de configuração de firewall: "O servidor RPC não está disponível. (Exceção de HRESULT: 0x800706BA)”.
Verifique se os computadores locais e remotos têm as versões do SQL Server 2014 Analysis Services (SSAS) das ferramentas de cliente e servidor.
No servidor remoto que está hospedando uma instância do Analysis Services, abra porta TCP 2383 no Firewall do Windows. Se você instalou o Analysis Services como instância nomeada ou está usando uma porta personalizada, o número da porta será diferente. Para obter mais informações, consulte Configure the Windows Firewall to Allow Analysis Services Access.
No servidor remoto, verifique se os seguintes serviços foram iniciados: serviço de RPC (Chamada de Procedimento Remoto), Serviço Auxiliar netBIOS TCP/IP, serviço WMI (Instrumentação de Gerenciamento do Windows), serviço WS-Management (Gerenciamento Remoto do Windows).
No servidor remoto, inicie o snap-in do Editor de Objeto de Política de Grupo (gpedit.msc).
Abra: Configuração do Computador, Modelos Administrativos, Rede, Conexões de Rede, Firewall do Windows e Perfil do Domínio.
Clique duas vezes em Firewall do Windows: permitir exceção de administração remota de entrada, selecione Habilitado e clique em OK.
Clique duas vezes em Firewall do Windows: permitir exceção de compartilhamento de arquivos e impressoras de entrada, selecione Habilitado e clique em OK.
No computador local que tem as ferramentas de cliente, use os cmdlets a seguir para verificar a administração remota, substituindo o nome real do servidor pelo espaço reservado remote-server-name . Omita o nome da instância se o Analysis Services for instalado como instância padrão. É necessário ter importado o módulo SQLPS previamente para que o comando funcione.
PS SQLSERVER:\> cd sqlas PS SQLSERVER:\sqlas> cd <remote-server-name\instance-name> PS SQLSERVER:\sqlas\<remote-server-name\instance-name> dir
Em alguns casos, as configurações adicionais podem ser necessárias. Talvez seja necessário digitar o seguinte no servidor remoto antes de poder emitir comandos para ele de outro computador:
Enable-PSRemoting
Conectar-se a um objeto do Analysis Services
O provedor do Analysis Services PowerShell oferece suporte à navegação na hierarquia de objetos do Analysis Services e define o contexto para a execução de comandos. O provedor é uma extensão do provedor raiz SQLSERVER disponível pelo módulo SQLPS. Depois de carregar o módulo SQLPS, é possível navegar pelo caminho.
É possível conectar-se a uma instância local ou remota, mas alguns cmdlets são executados somente em uma instância local (isto é, partição de mesclagem). É possível usar uma conexão nativa ou uma conexão HTTP para servidores do Analysis Services que você configurou para acesso HTTP. As ilustrações a seguir mostram o caminho de navegação para conexões nativas e HTTP. As ilustrações a seguir mostram o caminho de navegação para conexões nativas e HTTP.
Conexões nativas com o Analysis Services
O exemplo a seguir é uma demonstração de como usar uma conexão nativa para navegar na hierarquia de objetos. No provedor, é possível emitir dir
para visualizar informações da instância. É possível usar cd
para visualizar objetos dessa instância.
PS SQLSERVER:> cd sqlas
PS SQLSERVER\sqlas:> dir
PS SQLSERVER\sqlas:> cd localhost\default
PS SQLSERVER\sqlas\localhost\default:> dir
Você deverá ver as seguintes coleções: assemblies, bancos de dados, funções e rastreamentos. Se você continuar a usar cd
e dir
, poderá visualizar o conteúdo de cada coleção.
Conexões HTTP com o Analysis Services
As conexões HTTP serão úteis se você tiver configurado seu servidor para acesso HTTP usando as instruções neste tópico: Configurar o acesso HTTP ao Analysis Services nos Serviços de Informações da Internet (IIS) 8.0
Supondo que uma URL do servidor de https://localhost/olap/msmdpump.dll, uma conexão pode ser semelhante à seguinte:
PS SQLSERVER\sqlas:> cd http_ds
PS SQLSERVER\sqlas\http_ds:> $Url=Encode-SqlName "https://localhost/olap/msmdpump.dll"
PS SQLSERVER\sqlas\http_ds:> cd $Url
PS SQLSERVER\sqlas\http_ds\http%3A%2F%2Flocalhost%2olap%2msmdpump%2Edll:> dir
Você deverá ver as seguintes coleções: assemblies, bancos de dados, funções e rastreamentos. Se você não conseguir visualizar o conteúdo dessas coleções, verifique as configurações de autenticação no diretório virtual OLAP. Certifique-se de que Acesso Anônimo esteja desabilitado. Se você estiver usando a Autenticação do Windows, verifique se sua conta de usuário do Windows possui permissões administrativas na instância do Analysis Services.
Administrar o serviço
Verifique se o serviço está em execução. Retorna status, nome e nome para exibição dos serviços do SQL Server, incluindo Analysis Services (MSSQLServerOLAPService) e Mecanismo de Banco de Dados.
Get-Service mssql*
Retorna as propriedades de um processo, incluindo a ID do processo, contagem de identificadores e uso da memória:
Get-Process msmdsrv
Reinicia o serviço ao emitir o seguinte cmdlet a partir do shell de administrador:
Restart-Service mssqlserverolapservice
Obter ajuda sobre o Analysis Services PowerShell
Use qualquer um dos cmdlets a seguir para verificar a disponibilidade do cmdlet e obter mais informações sobre serviços, processos e objetos.
Get-Help
retorna a ajuda interna sobre um cmdlet do Analysis Services, incluindo exemplos:Get-Help invoke-ascmd -Examples
Get-Command
retorna uma lista dos onze cmdlets do Analysis Services PowerShell:Get-Command -module SQLASCmdlets
Get-Member
retorna as propriedades ou os métodos de um serviço ou processo.Get-Service mssqlserverolapservice | Get-Member -Type Property
Get-Service mssqlserverolapservice | Get-Member -Type Method
Get-Process msmdsrv | Get-Member -Type Property
Get-Member
também pode ser usado para retornar as propriedades ou os métodos de um objeto (por exemplo, métodos do AMO no objeto de servidor) usando o provedor SQLAS para especificar a instância do servidor.PS SQLSERVER:\sqlas\localhost\default > $serverObj = New-Object Microsoft.AnalysisServices.Server PS SQLSERVER:\sqlas\localhost\default > $serverObj = | Get-Member -Type Method
Get-PSdrive
retorna uma lista dos provedores instalados no momento. Se você tiver importado o módulo SQLPS, verá o provedorSQLServer
na lista (SQLAS faz parte do provedor SQLServer e nunca aparece separadamente na lista):Get-PSDrive
Consulte Também
Instalar o SQL Server PowerShell
Gerenciar modelos tabulares usando o PowerShell (blog)
Configurar o acesso HTTP ao Analysis Services no IIS (Serviços de Informações da Internet) 8.0