Invoke-SqlNotebook
Führt eine SQL-Notizbuchdatei (IPYNB) aus und gibt das materialisierte Notizbuch aus.
Syntax
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]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Invoke-SqlNotebook
[-ConnectionString <Object>]
[-InputFile <Object>]
[-InputObject <Object>]
[-OutputFile <Object>]
[-Force]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Invoke-SqlNotebook
-InputFile <Object>
[-OutputFile <Object>]
[-Force]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Invoke-SqlNotebook
-InputObject <Object>
[-OutputFile <Object>]
[-Force]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Invoke-SqlNotebook führt eine SQL-Notizbuchdatei (IPYNB) aus und gibt das materialisierte Notizbuch aus.
Das Notizbuch wird in der bereitgestellten ServerInstance und Datenbank ausgeführt.
Wenn das Cmdlet ausgeführt wird, befindet sich die resultierende Notizbuchdatei an dem Speicherort, den der Benutzer definiert oder im selben Verzeichnis der Eingabenotizbuchdatei.
Die Cmdlet-Ausgabedatei kann weggelassen werden: Wenn dies der Fall ist, wird sie mit dem Namen der Eingabedatei und dem an die Datei angefügten _out erstellt.
Beispiele
Beispiel 1: Ausführen eines Notizbuchs für den lokalen Server (Standardinstanz)
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
Mit diesem Befehl wird das Notizbuch für die Standardinstanz von SQL Server ausgeführt, die auf dem Computer ausgeführt wird, auf dem das Cmdlet ausgeführt wird. Da kein -OutputFile- übergeben wurde, wird das materialisierte Notizbuch auf dem Datenträger mit demselben Namen wie die InputFile- mit einem _out als Suffix an den Dateinamen (notebook.ipynb -> notebook_out.ipynb) gespeichert.
Beispiel 2: Ausführen des Notizbuchs auf dem lokalen Server (Instanz defaut) und Speichern des materialisierten Notizbuchs in einer angegebenen Datei
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
Mit diesem Befehl wird das Notizbuch für die Standardinstanz von SQL Server ausgeführt, die auf dem Computer ausgeführt wird, auf dem das Cmdlet ausgeführt wird. Das ausgeführte Notizbuch wird dann in der mit dem Parameter -OutputFile angegebenen Datei gespeichert.
Beispiel 3: Ausführen eines Notizbuchs mit -ConnectionString Parameter
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
Dies ist identisch mit Beispiel 1, nur dass die Verbindung mit dem Server über den parameter -ConnectionString angegeben wird.
Beispiel 4: Ausführen eines Notizbuchs für alle registrierten Server
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";
}
}
Verwenden Sie registrierte Server oder zentralen Verwaltungsserver, um Invoke-SqlNotebook für mehrere Server auszuführen.
In diesem Beispiel wird die NetName
-Eigenschaft der SQL Server-Instanz in den Namen der Ausgabedatei eingeschlossen. Das materialisierte Notizbuch wird zeitstempelt mit Jahresmonat-Tag-Stunde-Minute.
Beispiel 5: Notizbuch ausführen, Ergebnisse in Azure Data Studio öffnen
Installieren Sie die PowerShell-Erweiterung aus dem Azure Data Studio Marketplace.
Verwenden Sie die integrierte PowerShell-Konsole in Azure Data Studio, um Invoke-SqlNotebook
auszuführen, und verwenden Sie Open-EditorFile
, um die Ergebnisse des SQL-Notizbuchs direkt in Azure Data Studio zu öffnen.
Invoke-SqlNotebook -ServerInstance ServerA -Database master -InputFile "$home\Documents\SQL Server Management Studio\BPCheck.ipynb" |
Open-EditorFile
Hinweis: Der Befehl Open-EditorFile
ist nur in der integrierten PowerShell-Konsole verfügbar.
Beispiel 6: Ausführen eines Notizbuchs, Herstellen einer Verbindung mit Azure SQL-Datenbanken (oder verwalteten Instanzen) mithilfe eines Dienstprinzipals
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
Parameter
-AccessToken
Das Zugriffstoken, das zur Authentifizierung bei SQL Server verwendet wird, als Alternative zur Benutzer-/Kennwort- oder Windows-Authentifizierung.
Dies kann z. B. zum Herstellen einer Verbindung mit SQL Azure DB
und SQL Azure Managed Instance
mithilfe eines Service Principal
oder einer Managed Identity
verwendet werden (siehe Verweise unten auf dieser Seite)
In gängigen Szenarien wird dieser Parameter mit etwa (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token
abgerufen (erfordert das Az.Account-Modul)
Geben Sie UserName, Passwordoder Anmelde informationen nicht an, wenn Sie diesen Parameter verwenden.
Typ: | PSObject |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ConnectionString
Gibt eine Verbindungszeichenfolge an, die mit dem Server verbunden werden soll.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Credential
Das PSCredential-Objekt, dessen Felder "Benutzername" und "Kennwort" zum Herstellen einer Verbindung mit der SQL-Instanz verwendet werden.
Typ: | PSCredential |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Database
Mit diesem Cmdlet wird eine Verbindung mit dieser Datenbank in der Instanz hergestellt, die im Parameter "ServerInstance" angegeben ist.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Encrypt
Der Verschlüsselungstyp, der beim Herstellen einer Verbindung mit SQL Server verwendet werden soll.
Dieser Wert ist der Encrypt
Eigenschaft SqlConnectionEncryptOption
für das SqlConnection-Objekt des Microsoft.Data.SqlClient-Treibers zugeordnet.
In v22 des Moduls ist die Standardeinstellung Optional
(aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "Verpflichtend", wodurch für vorhandene Skripts eine bahnbrechende Änderung erstellt werden kann.
Dieser Parameter ist neu in v22 des Moduls.
Typ: | String |
Zulässige Werte: | Mandatory, Optional, Strict |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Force
Wenn das Cmdlet das materialisierte Notizbuch in eine Datei schreibt, wird standardmäßig eine Überprüfung durchgeführt, um zu verhindern, dass der Benutzer versehentlich eine vorhandene Datei überschreibt. Verwenden Sie -Force
, um diese Überprüfung zu umgehen und dem Cmdlet das Überschreiben der vorhandenen Datei zu ermöglichen.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-HostNameInCertificate
Der Hostname, der beim Überprüfen des SQL Server TLS/SSL-Zertifikats verwendet werden soll.
Dieser Parameter ist neu in v22 des Moduls.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputFile
Gibt eine Notizbuchdatei (IPYNB) an, die über das Cmdlet ausgeführt wird.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt das Notizbuch als JSON-Zeichenfolge an, die als Eingabenotizbuch verwendet wird.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-OutputFile
Gibt die gewünschte Ausgabenotizbuchdatei an, für die das ausgeführte Notizbuch gespeichert wird.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Password
Gibt das Kennwort für die ANMELDE-ID der SQL Server-Authentifizierung an, die im Parameter "Username" angegeben wurde.
Bei Kennwörtern wird zwischen Groß- und Kleinschreibung unterschieden. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung, oder verwenden Sie stattdessen den Parameter -Credential.
Wenn Sie den Parameter "Password" gefolgt von Ihrem Kennwort angeben, ist das Kennwort für jeden sichtbar, der Ihren Monitor sehen kann.
Wenn Sie das Kennwort gefolgt von Ihrem Kennwort in einem .ps1 Skript codieren, wird Ihr Kennwort von jedem Benutzer angezeigt, der die Skriptdatei liest.
Weisen Sie der Datei die entsprechenden NTFS-Berechtigungen zu, um zu verhindern, dass andere Benutzer die Datei lesen können.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ProgressAction
Bestimmt, wie PowerShell auf Statusaktualisierungen reagiert, die von einem Skript, Cmdlet oder Anbieter generiert werden, z. B. auf die Statusanzeigen, die vom Cmdlet Write-Progress generiert werden. Das Cmdlet Write-Progress erstellt Statusanzeigen, die den Status eines Befehls anzeigen.
Typ: | ActionPreference |
Aliase: | proga |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ServerInstance
Gibt eine Zeichenfolge oder ein SMO-Objekt (SQL Server Management Objects) an, das den Namen einer Instanz des Datenbankmoduls angibt.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-TrustServerCertificate
Gibt an, ob der Kanal verschlüsselt wird, während die Zertifikatkette umgangen wird, um die Vertrauensstellung zu überprüfen.
In v22 des Moduls ist die Standardeinstellung $true
(aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "$false", wodurch möglicherweise eine änderung für vorhandene Skripts geändert wird.
Dieser Parameter ist neu in v22 des Moduls.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Username
Gibt die Anmelde-ID zum Herstellen einer SQL Server-Authentifizierungsverbindung zu einer Instanz des Datenbankmoduls an.
Das Kennwort muss über den Parameter "Password" angegeben werden.
Wenn Benutzername und Kennwort nicht angegeben sind, versucht dieses Cmdlet eine Windows-Authentifizierungsverbindung mit dem Windows-Konto, das die Windows PowerShell-Sitzung ausführt. Verwenden Sie nach Möglichkeit die Windows-Authentifizierung.
Typ: | Object |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
System.Object
System.Management.Automation.PSCredential
Ausgaben
System.Object
Hinweise
Eine gute Möglichkeit zum Visualisieren eines materialisierten Notizbuchs ist die Verwendung von Azure Data Studio.