Analysis Services PowerShell
O SQL Server 2012 Analysis Services (SSAS) contém um provedor SQLAS (Analysis Services PowerShell) e cmdlets para que você possa usar o Windows PowerShell para navegar em, 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
Pré-requisitos
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 de URL e exemplos, consulte Referência do Analysis Services PowerShell.
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 o Instalar o 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 usar o provedor e os cmdlets SQLAS. O provedor SQLAS é uma extensão do provedor SQLServer. 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 Enable Remote Administration neste tópico.
Versões e modos compatíveis do Analysis Services
Atualmente, há suporte para o Analysis Services PowerShell em qualquer edição do SQL Server 2012 Analysis Services executada 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 Manage Tabular Models Using 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 PowerPivot para SharePoint PowerShell. |
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 “Data Source=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 “Data Source=*” |
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 parameter usa o objeto PSCredential que especifica um nome de usuário e senha. No Analysis Services PowerShell, o parâmetro –Credential está disponível para cmdlets que fazem uma solicitação de conexão ao Analysis Services, em vez dos 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 estes 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 7.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 é para uma instância local configurada para acesso HTTP.
PS SQLSERVER:\SQLAS\HTTP_DS> $cred = Get-credential adventureworks\dbadmin
PS SQLSERVER:\SQLAS\HTTP_DS> 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 Configurando o protocolo SSL no IIS 7 e Configurar 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.
PS SQLSERVER:\SQLAS\Localhost\default> $pwd = read-host -AsSecureString -Prompt "Password"
Password: ****
PS SQLSERVER:\SQLAS\Localhost\default> $pwd -is [System.IDisposable]
True
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 esta 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.
PS SQLSERVER:\SQLAS\Localhost\default> $pwd.Dispose()
PS SQLSERVER:\SQLAS\Localhost\default> 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 é possível executar o Analysis Services PowerShell por meio 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
Habilitar a administração remota e o compartilhamento de arquivos
Conectar-se a um objeto do Analysis Services
Administrar o serviço
Obter ajuda sobre 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 ambos os computadores local e remoto possuem as versões SQL Server 2012 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 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 TCP/IP NetBIOS Helper, serviço WMI (Instrumentação de Gerenciamento do Windows), serviço WS-Management (Windows Remote Management).
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 no compartilhamento de impressora e arquivo de entrada, selecione Habilitado e clique em OK.
No computador local que tem as ferramentas de 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 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
Para obter mais informações sobre a administração remota, consulte About_remote_requirements.
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 deste tópico: Configurar o acesso HTTP ao Analysis Services no IIS (Serviços de Informações da Internet 7.0
Usando como base a URL de servidor https://localhost/olap/msmdpump.dll, a conexão seria semelhante a esta:
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 provedor SQLServer na lista (SQLAS faz parte do provedor SQLServer e nunca aparece separadamente na lista):
Get-PSDrive
Consulte também
Conceitos
Instalar o SQL Server PowerShell
Configurar o acesso HTTP ao Analysis Services no IIS (Serviços de Informações da Internet 7.0