Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SSAS (SQL Server 2014 Analysis Services) inclui um provedor e cmdlets do SQLAS (Analysis Services PowerShell) para que você possa usar o Windows PowerShell para navegar, administrar e consultar objetos do Analysis Services.
O Analysis Services PowerShell consiste no seguinte:
SQLASprovedor usado para navegar na hierarquia AMO (Objeto de Gerenciamento de Análise).Invoke-ASCmdcmdlet usado para executar script MDX, DMX ou XMLA.Cmdlets específicos da tarefa para operações de rotina, como processamento, gerenciamento de funções, gerenciamento de partições, backup e restauração.
Neste artigo
Versões e modos com suporte do Analysis Services
Requisitos de autenticação e considerações de segurança
Tarefas do PowerShell do Analysis Services
Para obter mais informações sobre sintaxe e exemplos, consulte a Referência do PowerShell do Analysis Services.
Pré-requisitos
O Windows PowerShell 2.0 deve ser instalado. Ele é instalado por padrão em versões mais recentes dos sistemas operacionais Windows. Para obter mais informações, consulte Instalar o Windows PowerShell 2.0
Você deve instalar um recurso do SQL Server que inclui o módulo SQL Server PowerShell (SQLPS) e bibliotecas de cliente. A maneira mais fácil de fazer isso é instalando o SQL Server Management Studio, que inclui automaticamente o recurso do PowerShell e as bibliotecas de clientes. O módulo SQLPS (SQL Server PowerShell) contém os provedores e cmdlets do PowerShell para todos os recursos do SQL Server, incluindo o módulo SQLASCmdlets e o provedor SQLAS utilizados para explorar a 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 requer que você habilite a administração remota e o compartilhamento de arquivos. Para obter mais informações, consulte Habilitar Administração Remota neste tópico.
Versões e modos com suporte 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 contextos diferentes.
| Contexto | Disponibilidade de Recursos do PowerShell |
|---|---|
| Instâncias multidimensionais e bancos de dados | Com suporte para administração local e remota. A mesclagem requer uma conexão local. |
| Instâncias de tabela e bancos de dados | Com suporte para administração local e remota. Para obter mais informações, consulte um blog de agosto de 2011 sobre Como gerenciar modelos de tabela usando o PowerShell. |
| PowerPivot para instâncias e bancos de dados do SharePoint | Suporte limitado. Você pode usar conexões HTTP e o provedor SQLAS para exibir informações de instância e banco de dados. No entanto, não há suporte para o uso dos cmdlets. Você não deve usar o Analysis Services PowerShell para fazer backup e restaurar o banco de dados PowerPivot na memória, nem adicionar ou remover funções, processar dados ou executar um script XMLA arbitrário. Para fins de configuração, o PowerPivot para SharePoint tem suporte interno do PowerShell fornecido separadamente. Para obter mais informações, consulte Referência do PowerShell para PowerPivot para SharePoint. |
| Conexões nativas com cubos locais "Data Source=c:\backup\test.cub" |
Não há suporte. |
| Conexões HTTP com arquivos de conexão de modelo semântico de BI (.bism) no SharePoint "Fonte de dados=https://server/shared_docs/name.bism" |
Não há suporte. |
| Conexões incorporadas para bancos de dados PowerPivot "Fonte de Dados=$Embedded$" |
Não há suporte. |
| Contexto do servidor local nos procedimentos armazenados do Analysis Services "Fonte de dados=*" |
Não há suporte. |
Requisitos de autenticação e considerações de segurança
Ao se conectar ao Analysis Services, você deve fazer a conexão usando uma identidade de usuário do Windows. Na maioria das vezes, uma conexão é feita usando a segurança integrada do Windows, em que a identidade do usuário atual define o contexto de segurança no qual as operações de servidor são executadas. No entanto, métodos de autenticação adicionais ficam disponíveis quando você configura o acesso HTTP ao 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 com 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 do PowerShell usa o provedor OLE DB para o Analysis Services para se conectar diretamente a uma instância do Analysis Services. Uma conexão nativa é sempre feita usando a segurança integrada do Windows, em que o Analysis Services PowerShell é executado como o usuário atual. O Analysis Services não dá suporte à impersonação. Se você quiser executar 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 que opções de autenticação adicionais, como autenticação Básica, se conectem 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 PowerShell do Analysis Services, o parâmetro -Credential está disponível para cmdlets que fazem uma solicitação de conexão com o Analysis Services, ao invés de cmdlets que são executados dentro do 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 manipula a conexão, lê o nome de usuário e a senha e representa essa identidade de usuário ao se conectar 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 do IIS 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 correspondem a uma identidade de usuário do Windows. O Analysis Services usa essa identidade como o usuário atual. Se o usuário não for um usuário do Windows ou não tiver permissões suficientes para executar 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. Em seguida, você pode usar o objeto de credencial em um comando que se conecta ao Analysis Services. O exemplo a seguir ilustra 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 a autenticação Básica, você sempre deve usar HTTPS com SSL para que o nome de usuário e as senhas sejam enviados por 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 credenciais, consultas e comandos fornecidos 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 instrui o Analysis Services a 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]
Agora você pode fazer backup ou restaurar um arquivo de banco de dados criptografado, passando a variável $pwd para o parâmetro de senha. Para exibir um exemplo completo que combina essa ilustração com outros cmdlets, consulte Backup-ASDatabase cmdlet e Restore-ASDatabase cmdlet.
Como etapa de acompanhamento, remova a senha e a variável da sessão.
$pwd.Dispose()
Remove-Variable -Name pwd
Tarefas do PowerShell do Analysis Services
Você pode executar o Analysis Services PowerShell no shell de gerenciamento do Windows PowerShell ou em um prompt de comando do Windows. Não há suporte para a execução do Analysis Services PowerShell no SQL Server Management Studio.
Esta seção descreve tarefas comuns para usar o Analysis Services PowerShell.
Carregar o Provider do Analysis Services e os Cmdlets
O provedor do Analysis Services é uma extensão do provedor raiz do SQL Server que fica disponível quando você importa o módulo SQLPS. Os cmdlets do Analysis Services são carregados simultaneamente; você também poderá carregá-las de forma independente se quiser usá-las sem o provedor.
Execute o cmdlet Import-module para carregar o SQLPS que inclui todas as funcionalidades do PowerShell do Analysis Services. Se você não puder importar o módulo, poderá alterar temporariamente a política de execução para irrestrita para fins de carregamento do módulo. Para obter mais informações, consulte Importar o módulo SQLPS.
Import-Module "sqlps"Como alternativa, use
import-module "sqlps" -disablenamecheckingpara suprimir o aviso sobre nomes de verbo não aprovados.Para carregar apenas os cmdlets específicos para tarefas do Analysis Services, sem o provedor do Analysis Services ou o cmdlet Invoke-ASCmd, você pode carregar o módulo SQLASCmdlets como uma operação independente.
Import-Module "sqlascmdlets"
Habilitar Administração Remota
Antes de usar o Analysis Services PowerShell com uma instância remota do Analysis Services, primeiro você deve 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 SSAS (SQL Server 2014 Analysis Services) das ferramentas do cliente e do servidor.
No servidor remoto que está hospedando uma instância do Analysis Services, abra a porta TCP 2383 no Firewall do Windows. Se você instalou o Analysis Services como uma instância nomeada ou está usando uma porta personalizada, o número da porta será diferente. Para obter mais informações, consulte Configurar o Firewall do Windows para permitir o acesso ao Analysis Services.
No servidor remoto, verifique se os seguintes serviços foram iniciados: serviço RPC (Chamada de Procedimento Remoto), Serviço auxiliar do TCP/IP NetBIOS, serviço WMI (Instrumentação de Gerenciamento do Windows), serviço de Gerenciamento Remoto do Windows (WS-Management).
No servidor remoto, inicie o snap-in editor de objetos de política de grupo (gpedit.msc).
Abra a Configuração do Computador, abra Modelos Administrativos, abra a Rede, abra Conexões de Rede, abra o Firewall do Windows e abra o Perfil de Domínio.
Clique duas vezes sobre Firewall do Windows: permitir exceção para 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, selecione Habilitado e clique em OK.
No computador local que tem as ferramentas do cliente, use os seguintes cmdlets para verificar a administração remota, substituindo o nome do servidor real pelo espaço reservado remote-server-name. Omita o nome da instância se o Analysis Services estiver instalado como a instância padrão. Você deve ter importado anteriormente o módulo SQLPS 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, uma configuração adicional pode ser necessária. Talvez seja necessário digitar o seguinte no servidor remoto antes de emitir comandos para ele de outro computador:
Enable-PSRemoting
Conectar-se a um objeto do Analysis Services
O provedor do Analysis Services PowerShell dá suporte à navegação da hierarquia de objetos do Analysis Services e define o contexto para executar comandos. O provedor é uma extensão do provedor raiz SQLSERVER disponível por meio do módulo SQLPS. Depois de carregar o módulo SQLPS, você poderá navegar pelo caminho.
Você pode se conectar a uma instância local ou remota, mas alguns cmdlets só funcionam em uma instância local (ou seja, merge-partition). Você pode 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, você pode emitir um dir para exibir as informações da instância. Você pode usar cd para exibir 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. Continuando a usar cd e dir, você pode exibir o conteúdo de cada coleção.
Conexões HTTP com o Analysis Services
As conexões HTTP serão úteis se você configurou seu servidor para acesso HTTP usando as instruções neste tópico: Configurar o acesso HTTP ao Analysis Services no IIS (Serviços de Informações da Internet) 8.0
Supondo que a URL do servidor seja 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 puder exibir o conteúdo dessas coleções, verifique as configurações de autenticação no diretório virtual OLAP. Verifique se o Acesso Anônimo está desabilitado. Se você estiver usando a Autenticação do Windows, certifique-se de que sua conta de usuário do Windows tenha 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 de exibição para serviços do SQL Server, incluindo o Analysis Services (MSSQLServerOLAPService) e o Mecanismo de Banco de Dados.
Get-Service mssql*
Retorna propriedades de um processo, incluindo o ID do processo, a contagem de identificadores e o uso de memória.
Get-Process msmdsrv
Reinicia o serviço quando você emite o seguinte cmdlet do shell de administrador:
Restart-Service mssqlserverolapservice
Obter ajuda para o PowerShell do Analysis Services
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-Helpretorna a ajuda interna para um cmdlet do Analysis Services, incluindo exemplos:Get-Help invoke-ascmd -ExamplesGet-Commandretorna uma lista com os onze cmdlets do PowerShell do Analysis Services:Get-Command -module SQLASCmdletsGet-Memberretorna propriedades ou métodos de um serviço ou processo.Get-Service mssqlserverolapservice | Get-Member -Type PropertyGet-Service mssqlserverolapservice | Get-Member -Type MethodGet-Process msmdsrv | Get-Member -Type PropertyGet-Membertambém pode ser usado para retornar propriedades ou métodos de um objeto (por exemplo, métodos AMO no objeto do 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 MethodGet-PSdriveretorna uma lista dos provedores que estão instalados no momento. Se você importou o módulo SQLPS, verá oSQLServerprovedor na lista (o SQLAS faz parte do provedor SQLServer e nunca aparece separadamente na lista):Get-PSDrive
Consulte Também
Instalar o SQL Server PowerShell
Gerenciar modelos de tabela usando o PowerShell (blog)
Configurar o acesso HTTP ao Analysis Services no IIS (Serviços de Informações da Internet) 8.0