Invoke-SqlNotebook
Выполняет файл записной книжки SQL (IPynb) и выводит материализованную записную книжку.
Синтаксис
ByConnectionParameters (по умолчанию)
Invoke-SqlNotebook
[-ServerInstance <Object>]
[-Database <Object>]
[-Username <Object>]
[-Password <Object>]
[-Credential <PSCredential>]
[-InputFile <Object>]
[-InputObject <Object>]
[-OutputFile <Object>]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-Encrypt <String>]
[-HostNameInCertificate <String>]
[-Force]
[<CommonParameters>]
ByConnectionString
Invoke-SqlNotebook
[-ConnectionString <Object>]
[-InputFile <Object>]
[-InputObject <Object>]
[-OutputFile <Object>]
[-Force]
[<CommonParameters>]
ByInputFile
Invoke-SqlNotebook
-InputFile <Object>
[-OutputFile <Object>]
[-Force]
[<CommonParameters>]
ByInputObject
Invoke-SqlNotebook
-InputObject <Object>
[-OutputFile <Object>]
[-Force]
[<CommonParameters>]
Описание
Командлет Invoke-SqlNotebook выполняет файл записной книжки SQL (IPYNB) и выводит материализованную записную книжку.
Записная книжка будет выполнена на сервере ServerInstance и базе данных.
При запуске командлета результирующий файл записной книжки будет находиться в расположении, где пользователь определяет или в том же каталоге входного файла записной книжки.
Файл outfile командлета может быть опущен: если это так, он будет создан с именем входного файла и _out добавлен к файлу.
Примеры
Пример 1. Выполнение записной книжки на локальном сервере (экземпляр по умолчанию)
PS C:\> Invoke-SqlNotebook -ServerInstance localhost -Database TestNotebook -InputFile C:\notebook.ipynb
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/1/2019 1:00 PM 4656 notebook_out.ipynb
Эта команда запускает записную книжку для экземпляра SQL Server по умолчанию, работающего на компьютере, из которого выполняется командлет. По умолчанию, так как файл -OutputFile не был передан, материализованная записная книжка сохраняется на диске с тем же именем, что и InputFile с _out в качестве суффикса в имя файла (notebook.ipynb -> notebook_out.ipynb)
Пример 2. Выполнение записной книжки на локальном сервере (экземпляр defaut) и сохранение материализованной записной книжки в указанный файл
PS C:\> Invoke-SqlNotebook -ServerInstance localhost -Database TestNotebook -InputFile C:\notebook.ipynb -OutputFile C:\new_notebook.ipynb
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/1/2019 1:00 PM 44656 new_notebook.ipynb
Эта команда запускает записную книжку для экземпляра SQL Server по умолчанию, работающего на компьютере, из которого выполняется командлет. Затем выполненная записная книжка сохраняется в файл, указанный параметром -OutputFile .
Пример 3. Выполнение записной книжки с помощью параметра -ConnectionString
PS C:\> Invoke-Sqlnotebook -ConnectionString 'Server=Localhost;Database=TestNotebook;Trusted_Connection=True;' -InputFile C:\notebook.ipynb
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 8/1/2019 1:00 PM 44656 notebook_out.ipynb
Это то же самое, что и пример 1, только то, что подключение к серверу указывается с помощью параметра -ConnectionString .
Пример 4. Выполнение записной книжки для всех зарегистрированных серверов
dir 'SQLSERVER:\SQLRegistration\Database Engine Server Group' |
WHERE { $_.Mode -ne 'd'} |
foreach {
$datetime = Get-Date -Format yyyyMMddhhmm;
Get-SqlInstance -ServerInstance $_.Name |
foreach {
Invoke-SqlNotebook -ServerInstance $_.Name -Database master -InputFile '$home\Documents\SQL Server Management Studio\BPCheck.ipynb' `
-OutputFile "BPCheck_output_$($_.NetName)_$($datetime).ipynb";
}
}
Используйте зарегистрированные серверы или центральный сервер управления для выполнения Invoke-SqlNotebook на нескольких серверах.
В этом примере NetName свойство экземпляра SQL Server будет включено в имя выходного файла. Материализованная записная книжка будет помечена меткой времени с днем года в минуту.
Пример 5. Выполнение записной книжки, открытие результатов в Azure Data Studio
Установите расширение PowerShell из Azure Data Studio Marketplace.
Используйте интегрированную консоль PowerShell в Azure Data Studio для запуска Invoke-SqlNotebook и использования Open-EditorFile , чтобы открыть результаты записной книжки SQL непосредственно в Azure Data Studio.
Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile
Примечание. Команда Open-EditorFile доступна только в интегрированной консоли PowerShell.
Пример 6. Выполнение записной книжки, подключение к базам данных SQL Azure (или управляемому экземпляру) с помощью субъекта-службы
Import-Module SQLServer
Import-Module Az.Accounts -MinimumVersion 2.2.0
### Obtain the Access Token interactively.
### Note: help for Invoke-Sqlcmd has examples on other ways to acquire the token.
Connect-AzAccount
$access_token = (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
# Now that we have the token, we use it to connect to the database 'mydb' on server 'myserver'
Invoke-SqlNotebook -ServerInstance myserver.database.windows.net -Database master -AccessToken $access_token`
-InputFile MyNotebook.ipynb
Параметры
-AccessToken
Маркер доступа, используемый для проверки подлинности в SQL Server, в качестве альтернативы пользователю или паролю или проверке подлинности Windows.
Это можно использовать, например, для подключения SQL Azure DB и SQL Azure Managed Instance использования a Service Principal или a Managed Identity (см. ссылки в нижней части этой страницы).
В распространенных сценариях этот параметр получается примерно так (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token (требуется модуль Az.Account)
Не указывайте имя пользователя, пароль или учетные данные при использовании этого параметра.
Свойства параметра
| Тип: | PSObject |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ConnectionString
Указывает строку подключения для подключения к серверу.
Свойства параметра
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionString
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Credential
Объект PSCredential, поля имени пользователя и пароля которого будут использоваться для подключения к экземпляру SQL.
Свойства параметра
| Тип: | PSCredential |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Database
Этот командлет подключается к этой базе данных в экземпляре, указанном в параметре ServerInstance.
Свойства параметра
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Encrypt
Тип шифрования, используемый при подключении к SQL Server.
Это значение сопоставляется со Encrypt свойством SqlConnectionEncryptOption объекта SqlConnection драйвера Microsoft.Data.SqlClient.
В версии 22 модуля используется Optional значение по умолчанию (для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет "Обязательный", которое может создать критическое изменение для существующих скриптов.
Этот параметр является новым в версии 22 модуля.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Допустимые значения: | Mandatory, Optional, Strict |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Force
По умолчанию при записи материализованной записной книжки в файл выполняется проверка, чтобы пользователь случайно перезаписал существующий файл. Используйте -Force для обхода этой проверки и разрешить командлету перезаписать существующий файл.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-HostNameInCertificate
Имя узла используется для проверки TLS/SSL-сертификата SQL Server.
Этот параметр является новым в версии 22 модуля.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-InputFile
Указывает файл записной книжки (IPYNB), который будет выполняться с помощью командлета.
Свойства параметра
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ByConnectionString
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-InputObject
Указывает записную книжку в виде строки JSON, которая будет использоваться в качестве входной записной книжки.
Свойства параметра
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
ByConnectionString
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-OutputFile
Указывает нужный выходной файл записной книжки, для которого будет сохранена выполненная записная книжка.
Свойства параметра
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Password
Указывает пароль для идентификатора входа проверки подлинности SQL Server, указанного в параметре имени пользователя.
В паролях учитывается регистр символов. По возможности используйте проверку подлинности Windows или попробуйте использовать вместо него параметр -Credential .
Если вы укажете параметр пароля, за которым следует пароль, пароль отображается любому, кто может видеть монитор.
Если вы закодируйте пароль, за которым следует пароль в скрипте .ps1, любой пользователь, прочитавший файл скрипта, увидит свой пароль.
Назначьте соответствующие разрешения NTFS файлу, чтобы другие пользователи могли читать файл.
Свойства параметра
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ServerInstance
Указывает символьную строку или объект объектов SMO SQL Server, указывающий имя экземпляра ядра СУБД.
Свойства параметра
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-TrustServerCertificate
Указывает, будет ли канал зашифрован при обходе цепочки сертификатов для проверки доверия.
В версии 22 модуля используется $true значение по умолчанию (для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет иметь значение "$false", которое может создать критическое изменение для существующих скриптов.
Этот параметр является новым в версии 22 модуля.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Username
Указывает идентификатор входа для подключения проверки подлинности SQL Server к экземпляру ядра СУБД.
Пароль необходимо указать с помощью параметра Password.
Если имя пользователя и пароль не указаны, этот командлет пытается подключиться к проверке подлинности Windows с помощью учетной записи Windows под управлением сеанса Windows PowerShell. По возможности используйте проверку подлинности Windows.
Свойства параметра
| Тип: | Object |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByConnectionParameters
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
System.Object
System.Management.Automation.PSCredential
Выходные данные
System.Object
Примечания
Хорошим способом визуализации материализованной записной книжки является использование Azure Data Studio.