Partager via


Gérer l’authentification dans le moteur de base de données PowerShell

Par défaut, les composants de SQL Server PowerShell utilisent l’authentification Windows lors de la connexion à une instance du moteur de base de données. Vous pouvez utiliser l'authentification SQL Server en définissant un lecteur virtuel PowerShell ou en spécifiant les paramètres -Username et -Password pour Invoke-Sqlcmd.

  1. Avant de commencer : Autorisations

  2. Pour définir l’authentification, using : A Virtual Drive, Invoke-Sqlcmd

autorisations

Toutes les actions que vous pouvez effectuer dans une instance du moteur de base de données sont contrôlées par les autorisations accordées aux informations d'identification utilisées pour la connexion à l'instance. Par défaut, le fournisseur et les applets de commande SQL Server utilisent le compte Windows sous lequel ils s'exécutent pour établir une connexion via l'authentification Windows au moteur de base de données.

Pour établir une connexion via l'authentification SQL Server, vous devez fournir un ID de connexion et un mot de passe d'authentification SQL Server. Lorsque vous utilisez le fournisseur SQL Server, vous devez associer les informations d’identification de connexion SQL Server à un lecteur virtuel, puis utiliser la commande modifier le répertoire (cd) pour vous connecter à ce lecteur. Dans Windows PowerShell, les informations d'identification de sécurité peuvent être associées uniquement à des lecteurs virtuels.

Authentification SQL Server avec un lecteur virtuel

Pour créer un lecteur virtuel associé à une connexion via l'authentification SQL Server

  1. Créez une fonction qui :

    1. Possède des paramètres pour le nom indiquant le lecteur virtuel, l'ID de connexion et le chemin d'accès du fournisseur à associer au lecteur virtuel.

    2. Utilise read-host pour inviter l'utilisateur à fournir le mot de passe.

    3. Utilise new-object pour créer un objet d'informations d'identification.

    4. Utilise new-psdrive pour créer un lecteur virtuel avec les informations d'identification fournies.

  2. Appelez la fonction pour créer un lecteur virtuel avec les informations d'identification fournies.

Exemple (lecteur virtuel)

Cet exemple crée une fonction nommée sqldrive que vous pouvez utiliser pour créer un lecteur virtuel associé à la connexion via l'authentification SQL Server et à l'instance spécifiées.

La fonction sqldrive vous invite à entrer le mot de passe de votre connexion, en masquant celui-ci à mesure que vous le tapez. Ensuite, chaque fois que vous utilisez la commande modifier le répertoire (cd) pour vous connecter à un chemin à l’aide du nom du lecteur virtuel, toutes les opérations sont effectuées à l’aide des informations d’identification de connexion de l’authentification SQL Server que vous avez fournies lors de la création du lecteur.

## 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  
  
## CD to the virtual drive, which invokes the supplied authentication credentials.  
cd SQLAuth  

Authentification SQL Server avec Invoke-Sqlcmd

Pour utiliser Invoke-Sqlcmd avec l'authentification SQL Server

  1. Utilisez le paramètre de -Username pour spécifier un ID de connexion, et le paramètre de -Password pour spécifier le mot de passe associé.

Exemple (Invoke-Sqlcmd)

Cet exemple utilise l'applet de commande read-host pour inviter l'utilisateur à entrer un mot de passe, puis se connecte via l'authentification SQL Server.

## 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  

Voir aussi

SQL Server PowerShell
Fournisseur SQL Server PowerShell
Invoke-Sqlcmd, applet de commande