Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Standardmäßig verwenden die SQL Server PowerShell-Komponenten die Windows-Authentifizierung, wenn sie sich mit einer Instanz der Datenbank-Engine verbinden. Verwenden Sie die SQL Server-Authentifizierung, indem Sie ein virtuelles PowerShell-Laufwerk definieren oder die Parameter "-Username " und "-Password " für Invoke-Sqlcmd angeben.
Hinweis
Es gibt zwei SQL Server PowerShell-Module: SqlServer und SQLPS.
Das SqlServer-Modul ist das zu verwendende aktuelle PowerShell-Modul.
Das SQLPS-Modul ist zwar in der SQL Server-Installation (für die Abwärtskompatibilität) enthalten, wird jedoch nicht mehr aktualisiert.
Das SqlServer-Modul enthält aktualisierte Versionen der Cmdlets in SQLPS sowie neue Cmdlets zur Unterstützung der neuesten SQL-Funktionen.
Installieren Sie das SqlServer-Modul aus dem PowerShell-Katalog.
Weitere Informationen finden Sie unter SQL Server PowerShell.
Erlaubnisse
Alle Aktionen, die Sie in einer Instanz der Datenbank-Engine durchführen können, werden durch die Berechtigungen gesteuert, die den für die Verbindung mit der Instanz verwendeten Authentifizierungsdaten gewährt werden. Standardmäßig verwenden der SQL Server-Anbieter und die Cmdlets das Windows-Konto, unter dem er ausgeführt wird, um eine Windows-Authentifizierungsverbindung mit der Datenbank-Engine herzustellen.
Um eine SQL Server-Authentifizierungsverbindung herzustellen, müssen Sie eine SQL Server-Authentifizierungs-Anmelde-ID und ein Kennwort angeben. Wenn Sie den SQL Server-Anbieter verwenden, müssen Sie die SQL Server-Anmeldeinformationen einem virtuellen Laufwerk zuordnen und dann den Befehl "Verzeichnis ändern" (CD) verwenden, um eine Verbindung mit diesem Laufwerk herzustellen. In Windows PowerShell können Sicherheitsanmeldeinformationen nur virtuellen Laufwerken zugeordnet werden.
SQL Server-Authentifizierung mit einem virtuellen Laufwerk
So erstellen Sie ein virtuelles Laufwerk, das einer SQL Server-Authentifizierungsanmeldung zugeordnet ist.
Erstellen Sie eine Funktion, auf die Folgendes zutrifft:
Sie verfügt über Parameter für den Namen, der dem virtuellen Laufwerk zugeordnet werden soll, für die Anmelde-ID und für den Anbieterpfad, der dem virtuellen Laufwerk zugeordnet werden soll.
Sie verwendet read-host , um den Benutzer zur Eingabe des Kennworts aufzufordern.
Sie verwendet new-object um ein Anmeldeinformationsobjekt zu erstellen.
Sie verwendet new-psdrive , um ein virtuelles Laufwerk mit den angegebenen Anmeldeinformationen zu erstellen.
Rufen Sie die Funktion auf, um ein virtuelles Laufwerk mit den angegebenen Anmeldeinformationen zu erstellen.
Beispiel: Virtuelles Laufwerk
In diesem Beispiel wird eine Funktion namens "sqldrive " erstellt, mit der Sie ein virtuelles Laufwerk erstellen können, das der angegebenen SQL Server-Authentifizierungsanmeldung und -Instanz zugeordnet ist.
Sie werden von der Funktion sqldrive zur Eingabe des Kennworts für Ihren Anmeldenamen aufgefordert. Das Kennwort wird bei der Eingabe maskiert. Wenn Sie dann den Änderungsverzeichnisbefehl (CD) zum Herstellen einer Verbindung mit einem Pfad mit dem Namen des virtuellen Laufwerks verwenden, werden alle Vorgänge mit den ANMELDEinformationen der SQL Server-Authentifizierung ausgeführt, die Sie beim Erstellen des Laufwerks angegeben haben.
## Create a function that specifies the login and prompts for the password.
function sqldrive
{
param( [string]$name, [string]$login = "MyLogin", [string]$root = "SQLSERVER:\SQL\MyComputer\MyInstance" )
$pwd = read-host -AsSecureString -Prompt "Password"
$cred = new-object System.Management.Automation.PSCredential -argumentlist $login,$pwd
New-PSDrive $name -PSProvider SqlServer -Root $root -Credential $cred -Scope 1
}
## Use the sqldrive function to create a SQLAuth virtual drive.
sqldrive SQLAuth
## Set-Location to the virtual drive invokes the supplied authentication credentials.
sl SQLAuth:
SQL Server-Authentifizierung mit Invoke-Sqlcmd
So verwenden Sie Invoke-Sqlcmd mit SQL Server-Authentifizierung.
- Verwenden Sie den Parameter -Username, um eine Anmelde-ID anzugeben, und den Parameter -Password, um das zugeordnete Kennwort anzugeben.
Beispiel (Invoke-Sqlcmd)
In diesem Beispiel wird das Cmdlet "Read-Host" verwendet, um den Benutzer zur Eingabe eines Kennworts aufzufordern und dann eine Verbindung mit der SQL Server-Authentifizierung herzustellen.
## Prompt the user for their password.
$pwd = read-host -AsSecureString -Prompt "Password"
Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance "MyComputer\MyInstance" -Username "MyLogin" -Password $pwd