Analysis Services PowerShell

В службах SQL Server 2012 Analysis Services (SSAS) имеется поставщик Analysis Services PowerShell (SQLAS) и командлеты, позволяющие использовать Windows PowerShell для навигации, администрирования и выполнения запросов к объектам служб Analysis Services.

В состав Analysis Services PowerShell входит следующее.

  • Поставщик SQLAS, используемый для навигации по иерархии объектов AMO.

  • Командлет Invoke-ASCmd, используемый для выполнения скриптов многомерного анализа данных (MDX), расширений интеллектуального анализа данных (DMX) или XML для аналитики.

  • Командлеты для отдельных задач, выполняющие типовые операции, в частности, обработку, управление ролями, управление секциями, резервное копирование и восстановление.

В данной статье

Предварительные требования

Поддерживаемые версии и режимы служб Analysis Services

Требования проверки подлинности и соображения безопасности

Задачи Analysis Services PowerShell

Дополнительные сведения о синтаксисе и примеры см. в разделе Справочник по компоненту Analysis Services PowerShell.

Предварительные требования

Должна быть установлена оболочка Windows PowerShell 2.0. В последних версиях операционных систем Windows она устанавливается по умолчанию. Дополнительные сведения см. в разделе Установка Windows PowerShell 2.0.

Необходимо установить компонент SQL Server, включающий модуль SQL Server PowerShell (SQLPS) и клиентские библиотеки. Проще всего это сделать, установив среду SQL Server Management Studio, которая уже включает компонент PowerShell и клиентские библиотеки. Модуль SQL Server PowerShell (SQLPS) содержит поставщики PowerShell и командлеты для всех компонентов SQL Server, включая модуль SQLASCmdlets и поставщик SQLAS, используемый для навигации по иерархии объектов служб Analysis Services.

Перед использованием поставщика SQLAS и командлетов необходимо импортировать модуль SQLPS. Поставщик SQLAS является расширением поставщика SQLServer. Имеется несколько способов импорта модуля SQLPS. Дополнительные сведения см. в разделе Импорт модуля SQLPS.

Для удаленного доступа к экземпляру служб Analysis Services требуется включить удаленное администрирование и общий доступ к файлам. Дополнительные сведения см. в подразделе Enable Remote Administration этого раздела.

Поддерживаемые версии и режимы служб Analysis Services

В настоящее время Analysis Services PowerShell поддерживается всеми выпусками служб SQL Server 2012 Analysis Services, работающими под управлением Windows Server 2008 R2, Windows Server 2008 SP1 или Windows 7.

В следующей таблице приведены данные по доступности Analysis Services PowerShell в различных контекстах.

Контекст

Доступность функций PowerShell

Многомерные экземпляры и базы данных

Поддерживается локальное и удаленное администрирование.

Для слияния секций необходимо локальное соединение.

Табличные экземпляры и базы данных

Поддерживается локальное и удаленное администрирование.

Дополнительные сведения см. в разделе Управление табличными моделями с помощью PowerShell.

Экземпляры и базы данных PowerPivot для SharePoint

Ограниченная поддержка. Для просмотра сведений об экземпляре и базе данных можно использовать соединения HTTP и поставщик SQLAS.

Однако использование командлетов не поддерживается. Надстройку PowerShell для служб Analysis Services не следует использовать для резервного копирования и восстановления хранящихся в памяти баз данных PowerPivot, а также для добавления и удаления ролей, обработки данных или запуска произвольных скриптов XMLA.

В целях настройки в PowerPivot для SharePoint имеется встроенная поддержка PowerShell, реализуемая отдельно. Дополнительные сведения см. в разделе Справочник по PowerPivot для SharePoint PowerShell.

Собственные соединения с локальными кубами

“Data Source=c:\backup\test.cub”

Не поддерживается.

Соединения HTTP с файлами соединений семантических моделей бизнес-аналитики (BISM-файлами) в SharePoint

“Data Source=https://server/shared_docs/name.bism”

Не поддерживается.

Встроенные соединения с базами данных PowerPivot

“Data Source=$Embedded$”

Не поддерживается.

Контекст локального сервера в хранимых процедурах служб Analysis Services

“Data Source=*”

Не поддерживается.

Требования проверки подлинности и соображения безопасности

При соединении со службами Analysis Services необходимо использовать идентификатор пользователя Windows. В большинстве случаев соединение осуществляется с использованием встроенной проверки подлинности Windows, при этом идентификатор текущего пользователя задает контекст, в котором выполняются серверные операции. Однако после настройки доступа к службам Analysis Services по HTTP становятся доступными дополнительные методы проверки подлинности. В этом разделе описывается, как тип соединения влияет на возможные параметры проверки подлинности.

Соединение к службам Analysis Services может быть собственным либо соединением по HTTP. Собственное соединение — это прямое соединение клиентского приложения к серверу. В сеансе PowerShell клиент PowerShell использует поставщик OLE DB для служб Analysis Services для прямого подключения к экземпляру служб Analysis Services. Собственные соединения всегда осуществляются с использованием встроенной безопасности Windows, при этом PowerShell выполняется от имени текущего пользователя. Службы Analysis Services не поддерживают олицетворение. Если необходимо выполнить операцию от имени определенного пользователя, запустите сеанс PowerShell от имени этого пользователя.

HTTP-соединения производятся непрямым образом через IIS, что обеспечивает дополнительные возможности проверки подлинности, например использование обычной проверки подлинности при подключении к экземпляру служб Analysis Services. Поскольку службы IIS поддерживают олицетворение, в строке подключения можно указать учетные данные, которые будут использоваться IIS для олицетворения при соединении. Чтобы задать учетные данные, используйте параметр –Credential.

Использование параметра –Credential в PowerShell

Параметр –Credential принимает объект PSCredential, задающий имя пользователя и пароль. В Analysis Services PowerShell параметр –Credential доступен для командлетов, осуществляющих запрос на соединение со службами Analysis Services, в противоположность командлетам, которые выполняются в контексте существующего соединения. К командлетам, осуществляющим запрос на соединение, относятся Invoke-ASCmd, Backup-ASDatabase и Restore-ASDatabase. Для этих командлетов параметр –Credential может использоваться, если выполнены следующие условия.

  1. Сервер настроен на доступ по HTTP, то есть соединение обрабатывается сервером IIS, который считывает имя пользователя и пароль и олицетворяет соответствующий идентификатор пользователя при соединении со службами Analysis Services. Дополнительные сведения см. в разделе Настройка HTTP-доступа к службам Analysis Services в службах Internet Information Services (IIS) 7.0.

  2. Виртуальный каталог IIS, созданный для доступа к службам Analysis Services по HTTP, настроен на обычную проверку подлинности.

  3. Имя пользователя и пароль, предоставляемые объектом учетных данных, разрешаются в идентификатор пользователя Windows. Службы Analysis Services используют этот идентификатор в качестве текущего пользователя. Если пользователь не является пользователем Windows или у него недостаточно прав для выполнения запрошенной операции, запрос завершается с ошибкой.

Чтобы создать объект учетных данных, можно воспользоваться командлетом Get-Credential для получения учетных данных от оператора. Затем этот объект учетных данных можно использовать в команде подключения к службам Analysis Services. В следующем примере показан один из подходов. В этом примере осуществляется соединение с локальным экземпляру, настроенному на доступ по HTTP.

PS SQLSERVER:\SQLAS\HTTP_DS> $cred = Get-credential adventureworks\dbadmin
PS SQLSERVER:\SQLAS\HTTP_DS> Invoke-ASCmd –Inputfile:”c:\discoverconnections.xmla” –Credential:$cred

При использовании обычной проверки подлинности следует всегда использовать протокол HTTPS с включенным SSL, чтобы имя пользователя и пароль передавались по зашифрованному соединению. Дополнительные сведения см. в разделе Настройка протокола SSL в службах IIS 7.0 и Настройка обычной проверки подлинности (IIS 7).

Не забывайте, что учетные данные, запросы и команды, вводимые в PowerShell, передаются на транспортный уровень без изменений. Включение конфиденциальных данных в скрипты повышает вероятность вредоносной атаки типа «инъекция».

Указание пароля в объекте Microsoft.Secure.String

Некоторые операции, например резервное копирование и восстановление, поддерживают параметры шифрования, которые включаются при указании в команде пароля. Указание пароля дает службам Analysis Services команду на шифрование или расшифровку файла резервной копии. В службах Analysis Services экземпляр этого пароля создается в виде объекта защищенной строки. В следующем примере показано, как получить пароль от оператора во время выполнения.

PS SQLSERVER:\SQLAS\Localhost\default> $pwd = read-host -AsSecureString -Prompt "Password"
Password: ****
PS SQLSERVER:\SQLAS\Localhost\default> $pwd -is [System.IDisposable] 
True

Теперь можно создавать резервную копию зашифрованного файла базы данных и восстанавливать ее, передавая переменную $pwd в параметр пароля. Полный пример, в котором эта возможность сочетается с другими командлетами, см. в разделах Командлет Backup-ASDatabase и Командлет Restore-ASDatabase.

В качестве следующего шага удалите пароль и переменную из сеанса.

PS SQLSERVER:\SQLAS\Localhost\default> $pwd.Dispose()
PS SQLSERVER:\SQLAS\Localhost\default> Remove-Variable -Name pwd

Задачи Analysis Services PowerShell

Службы Analysis Services PowerShell можно запустить из консоли управления Windows PowerShell или командной строки Windows. Запуск служб Analysis Services PowerShell из среды Среда SQL Server Management Studio не поддерживается.

В этом разделе описываются типичные задачи, для выполнения которых используется Analysis Services PowerShell.

  • Загрузка поставщика служб Analysis Services и командлетов

  • Включение удаленного администрирования и общего доступа к файлам

  • Подключение к объекту служб Analysis Services

  • Администрирование службы

  • Получение справки по Analysis Services PowerShell

Загрузка поставщика служб Analysis Services и командлетов

Поставщик Analysis Services — это расширение корневого поставщика SQL Server, которое становится доступным при импорте модуля SQLPS. Командлеты служб Analysis Services загружаются одновременно; их также можно загружать по отдельности, если вы хотите использовать их без поставщика.

  • Запустите командлет Import-module, чтобы загрузить SQLPS, включающий всю функциональность Analysis Services PowerShell. Если импортировать модуль невозможно, можно временно сменить политику выполнения на неограниченную, чтобы загрузить этот модуль. Дополнительные сведения см. в разделе Импорт модуля SQLPS.

    Import-module “sqlps”
    

    Вместо этого можно использовать команду import-module “sqlps” –disablenamechecking для подавления предупреждений о несоответствии имен команд утвержденным.

  • Чтобы загрузить лишь командлеты служб Analysis Services для определенной задачи, без поставщика служб Analysis Services или командлета Invoke-ASCmd, можно загрузить модуль SQLASCmdlets в рамках независимой операции.

    Import-module “sqlascmdlets”
    

Включение удаленного администрирования

Чтобы можно было использовать службы Analysis Services PowerShell с удаленным экземпляром служб Analysis Services, сначала необходимо включить удаленное администрирование и общий доступ к файлам. Следующая ошибка указывает на проблему с настройкой брандмауэра: “Сервер RPC недоступен. (Исключение HRESULT: 0x800706BA)”.

  1. Убедитесь, что и на локальном, и на удаленном компьютерах установлена версия SQL Server 2012 Analysis Services (SSAS) клиентских и серверных средств.

  2. На удаленном сервере, на котором размещен экземпляр служб Analysis Services, откройте в брандмауэре Windows порт TCP 2383. Если службы Analysis Services установлены как именованный экземпляр или используют заданный пользователем порт, номер порта будет другим. Дополнительные сведения см. в разделе Настройка брандмауэра Windows на разрешение доступа к службам Analysis Services.

  3. Убедитесь, что на удаленном сервере запущены следующие службы: служба вызова удаленных процедур (RPC), служба поддержки NetBIOS через TCP/IP, служба Windows Management Instrumentation (WMI), служба удаленного управления Windows (WS-Management).

  4. На удаленном сервере запустите оснастку редактора объектов групповой политики (gpedit.msc).

  5. Откройте последовательно следующие элементы: «Настройка компьютера»,«Административные шаблоны», «Сеть», «Сетевые подключения», «Брандмауэр Windows» и «Профиль домена».

  6. Дважды щелкните элемент Брандмауэр Windows: разрешать исключения входящего удаленного администрирования, выберите значение Включено и нажмите кнопку OK.

  7. Дважды щелкните элемент Брандмауэр Windows: разрешать исключения входящего общего доступа к файлам и принтерам, выберите значение Включено и нажмите кнопку OK.

  8. На локальном компьютере с установленными клиентскими средствами воспользуйтесь следующими командлетами для проверки работы удаленного администрирования, подставив фактическое имя сервера вместо заполнителя remote-server-name. Пропустите имя экземпляра, если службы Analysis Services установлены как экземпляр по умолчанию. Чтобы эта команда работала, необходимо предварительно импортировать модуль SQLPS.

    PS SQLSERVER:\> cd sqlas
    PS SQLSERVER:\sqlas> cd <remote-server-name\instance-name>
    PS SQLSERVER:\sqlas\<remote-server-name\instance-name> dir
    

В некоторых случаях может понадобиться дополнительная настройка. Возможно, потребуется ввести на удаленном сервере следующую команду, прежде чем на нем можно будет выполнять команды с другого компьютера:

Enable-psremoting

Дополнительные сведения об удаленном администрировании см. в разделе About_remote_requirements.

Подключение к объекту служб Analysis Services

Поставщик Analysis Services PowerShell поддерживает навигацию по иерархии объектов служб Analysis Services и задает контекст для выполнения команд. Поставщик является расширением корневого поставщика SQLSERVER, доступного в модуле SQLPS. После загрузки модуля SQLPS становится доступной навигация по пути.

Возможно подключение как к локальному, так и к удаленному экземпляру, но некоторые командлеты работают только на локальном экземпляре (например, merge-partition). Можно использовать собственное соединение или HTTP-соединение с серверами служб Analysis Services, настроенными на доступ по протоколу HTTP. На следующих рисунках показан путь навигации для собственных соединений и для соединений по протоколу HTTP. На следующих рисунках показан путь навигации для собственных соединений и для соединений по протоколу HTTP.

Собственные соединения со службами Analysis Services

Собственное соединение со службами Analysis Services

Следующий пример показывает использование собственного соединения для навигации по иерархии объектов. На поставщике можно воспользоваться командой dir для просмотра сведений об экземпляре. Команда cd позволяет просмотреть объекты на этом экземпляре.

PS SQLSERVER:> cd sqlas
PS SQLSERVER\sqlas:> dir
PS SQLSERVER\sqlas:> cd localhost\default
PS SQLSERVER\sqlas\localhost\default:> dir

Должны отображаться следующие коллекции: «Сборки», «Базы данных», «Роли» и «Трассировки». Продолжая использовать cd и dir, можно просмотреть содержимое всех коллекций.

Соединения по протоколу HTTP со службами Analysis Services

HTTP-соединение со службами Analysis Services

Соединения по протоколу HTTP полезны, если сервер настроен на доступ по HTTP в соответствии с указаниями, приведенными в следующем разделе: Настройка HTTP-доступа к службам Analysis Services в службах Internet Information Services (IIS) 7.0

Если предположить, что URL-адрес сервера https://localhost/olap/msmdpump.dll, то соединение может выглядеть следующим образом:

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

Должны отображаться следующие коллекции: «Сборки», «Базы данных», «Роли» и «Трассировки». Если просмотреть содержимое этих коллекций не удается, проверьте параметры проверки подлинности в виртуальном каталоге OLAP. Убедитесь, что анонимный доступ отключен. Если используется проверка подлинности Windows, убедитесь, что у учетной записи пользователя Windows имеются административные разрешения для экземпляра служб Analysis Services.

Администрирование службы

Убедитесь в том, что служба запущена. Возвращает состояние, имя и отображаемое имя служб SQL Server, включая службы Analysis Services (MSSQLServerOLAPService) и компонент Database Engine.

Get-service mssql*

Возвращает свойства процесса, включая идентификатор процесса, количество дескрипторов и объем используемой памяти:

Get-process msmdsrv

Перезапускает службу, когда пользователь выполняет следующий командлет из оболочки администратора:

Restart-service mssqlserverolapservice

Получение справки по Analysis Services PowerShell

Используйте любой из следующих командлетов, чтобы проверить доступность командлетов и получить дополнительные сведения о службах, процессах и объектах.

  1. Get-help возвращает встроенную справку для командлета служб Analysis Services, включая примеры:

    Get-help invoke-ascmd -examples
    
  2. Get-command возвращает список из одиннадцати командлетов Analysis Services PowerShell:

    get-command –module SQLASCmdlets
    
  3. Get-member возвращает свойства или методы службы или процесса.

    Get-service mssqlserverolapservice | get-member –type Property
    
    Get-service mssqlserverolapservice | get-member –type Method
    
    Get-process msmdsrv | get-member –type Property
    
  4. Get-member также может использоваться для возвращения свойств или методов объекта (например, методов AMO у серверного объекта) с применением поставщика SQLAS, задающего экземпляр сервера.

    PS SQLSERVER:\sqlas\localhost\default > $serverObj = New-Object Microsoft.AnalysisServices.Server
    PS SQLSERVER:\sqlas\localhost\default > $serverObj = | get-member –type Method
    
  5. Get-PSdrive возвращает список поставщиков, установленных в настоящий момент. Если модуль SQLPS импортирован, в списке отобразится поставщик SQLServer (SQLAS входит в состав поставщика SQLServer и никогда не появляется в списке отдельно от него):

    Get-PSDrive
    

См. также

Основные понятия

Установка компонентов SQL Server PowerShell

Настройка HTTP-доступа к службам Analysis Services в службах Internet Information Services (IIS) 7.0

Другие ресурсы

Управление табличными моделями с помощью PowerShell