Partager via


Exemple Impersonation

Mis à jour : 5 décembre 2005

L'exemple Impersonation montre comment se servir de l'emprunt d'identité dans le contexte de la sécurité intégrée de façon à utiliser les informations d'identification que le client transmet pour accéder à des ressources protégées du système d'exploitation, par exemple des fichiers. Par défaut, ce sont les informations d'identification du compte sous lequel s'exécute SQL Server qui sont utilisées lorsque vous accédez à de telles ressources.

ms160785.note(fr-fr,SQL.90).gifRemarque :
Cette forme d'emprunt d'identité n'a aucune influence sur l'accès aux ressources SQL Server protégées, telles que les tables, sauf si vous accédez aux données d'un autre serveur de base de données (SQL Server ou tout autre type de serveur de base de données) via ADO.NET. Dans ce cas, vous devez utiliser l'emprunt d'identité pendant l'exécution de la méthode Open sur la connexion pour transmettre les informations d'identité du client au serveur distant. L'emprunt d'identité n'est pas nécessaire durant les autres appels ADO.NET.

Cet exemple montre également comment accéder à des informations sur les fichiers contenus dans un répertoire à l'aide d'une fonction table CLR (Common Language Runtime).

Répertoire d'installation : lecteur:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\Impersonation\

Scénario

Jean est développeur chez Adventure Works Cycles. Il souhaite accéder à des informations sur les fichiers d'un répertoire du serveur en utilisant les informations d'identité transmises par le client.

Langages

Transact-SQL, Visual C# et Visual Basic.

Fonctionnalités

L'exemple Impersonation utilise les fonctionnalités suivantes de SQL Server.

Domaine d'application Fonctionnalités

Général

CLR, Sécurité

Configuration requise

Avant d'exécuter cet exemple, vérifiez que le logiciel suivant est installé :

  • Microsoft SQL Server 2005 ou Microsoft SQL Server 2005 Express Edition (SQL Server Express). Vous pouvez obtenir SQL Server Express gratuitement à partir du site Web SQL Server 2005 Express Edition Documentation et exemples.
  • Base de données AdventureWorks fournie avec SQL Server 2005 et également disponible sur le site Web du SQL Server Developer Center (Centre des développeurs SQL Server).
  • Les exemples du moteur de base de données SQL Server 2005. Ces exemples accompagnent SQL Server 2005. Vous pouvez télécharger la dernière version des exemples sur le site Web du SQL Server Developer Center (Centre des développeurs SQL Server).
  • Le Kit de développement .NET Framework SDK 2.0 ou Microsoft Visual Studio 2005. Vous pouvez obtenir gratuitement le Kit de développement .NET Framework SDK. Consultez Installation du SDK .NET Framework.

Génération de l'exemple

Si vous n'avez pas déjà créé le fichier de clé de nom fort ExternalSampleKey.snk, utilisez la procédure suivante pour générer ce fichier.

Pour générer un fichier de clé de nom fort

  1. Ouvrez une invite de commandes Microsoft Visual Studio 2005. Cliquez sur Démarrer, pointez successivement sur Tous les programmes, sur Microsoft Visual Studio 2005 et sur Outils Visual Studio, puis cliquez sur Invite de commandes de Visual Studio 2005.

    - ou -

    Ouvrez une invite de commandes de Microsoft .NET Framework. Cliquez sur Démarrer, pointez sur Tous les programmes et sur Kit de développement Microsoft .NET Framework SDK 2.0, puis cliquez sur Invite de commandes du Kit de développement SDK.

  2. À l'invite de commandes, utilisez la commande CD (changer de répertoire) pour remplacer le dossier actif de la fenêtre d'invite de commandes par le dossier dans lequel les exemples sont installés.

    ms160785.note(fr-fr,SQL.90).gifRemarque :
    Pour déterminer le dossier dans lequel se trouvent les exemples, cliquez sur Démarrer, pointez successivement sur Tous les programmes, sur Microsoft SQL Server 2005 et sur Documentation et didacticiels, puis cliquez sur le répertoire Exemples. Si l'emplacement d'installation par défaut a été utilisé, les exemples se trouvent dans <system_drive>:\Program Files\Microsoft SQL Server\90\Samples.
  3. À l'invite de commandes, exécutez la commande suivante pour générer le fichier de clé :

    sn -k ExternalSampleKey.snk

    ms160785.note(fr-fr,SQL.90).gifImportant :
    Pour plus d'informations sur la paire de clés de nom fort, consultez l'article de sécurité concernant les noms forts et la sécurité dans .NET Framework, dans le Centre de développement .NET sur MSDN.

Pour générer l'exemple Impersonation

  1. Compilez l'exemple au moyen de Visual Studio 2005 et de la solution Visual Studio fournie, ou à l'aide de Microsoft MSBuild disponible dans le Kit de développement logiciel .NET Framework SDK 2.0. À une invite de commandes, exécutez une commande semblable à la suivante :

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\ Impersonation.sln

  2. Vérifiez que la base de données AdventureWorks est installée.

  3. Si vous n'avez pas installé les exemples pour le moteur SQL Server à l'emplacement par défaut, modifiez le chemin d'accès dans la partie CREATE ASSEMBLY des scripts qui se trouvent dans les fichiers Scripts\InstallCS.sql et Scripts\InstallVB.sql de façon à désigner l'emplacement où vous avez installé ces exemples.

  4. Si vous n'êtes pas un administrateur de l'instance de SQL Server que vous utilisez, demandez à un administrateur de vous accorder l'autorisation CreateAssembly pour effectuer l'installation.

  5. Ouvrez le fichier scripts\installCS.sql or scripts\installVB.sql, selon que vous avez compilé le projet Visual C# ou le projet Visual Basic, dans Microsoft SQL Server Management Studio. Exécutez le script contenu dans le fichier ou exécutez une commande semblable à la suivante à l'invite de commandes :

    sqlcmd -E -I -i Scripts\InstallCS.sql

Exécution de l'exemple

Pour exécuter l'exemple Impersonation

  1. Dans le dossier Mes documents, créez un dossier nommé Test.

  2. À l'aide du Bloc-notes, créez un fichier texte vide dans ce dossier.

  3. Configurez la sécurité du dossier à l'aide de la boîte de dialogue Propriétés dans l'Explorateur Windows.

    1. Utilisez le bouton Paramètres Avancé de l'onglet Sécurité pour désactiver l'héritage par le dossier des paramètres de sécurité de son parent.
    2. Utilisez l'option Copier pour copier les paramètres de sécurité du parent.
    3. Ajoutez votre compte en tant qu'utilisateur doté d'un accès complet au dossier.
    4. Supprimez tous les autres utilisateurs.
  4. Ouvrez le fichier scripts\test.sql dans Management Studio ou dans le Bloc-notes. Modifiez le fichier pour que, au lieu d'appeler la méthode GetEnvironmentVariable dans l'instruction SELECT @TestDir, vous puissiez spécifier une chaîne constante pour la valeur de la variable @TestDir. Le code doit ressembler à ce qui suit :

    SELECT @TestDir = 'C:\Documents and Settings\username\My Documents\Test\'

    Remplacez username par votre véritable nom d'utilisateur.

Exécutez le script dans Management Studio ou enregistrez le fichier modifié dans le Bloc-notes, puis exécutez la commande suivante à partir de l'invite de commandes :

sqlcmd -E -I -i Scripts\test.sql

Suppression de l'exemple

Pour supprimer l'exemple Impersonation

  1. Ouvrez le fichier scripts\cleanup.sql dans Management Studio. Exécutez le script contenu dans le fichier ou la commande suivante à partir de l'invite de commandes :

    sqlcmd -E -I -i Scripts\cleanup.sql

Commentaires

Pour que cet exemple fonctionne correctement, vous devez activer le Common Language Runtime pour SQL Server 2005 ou SQL Server Express.

Les exemples sont fournis à titre éducatif uniquement. Ils ne sont pas destinés à être utilisés dans un environnement de production et n'ont pas été testés à cet usage. Microsoft ne fournit aucun support technique pour ces exemples. Les exemples d'applications et les assemblys ne doivent pas être utilisés avec votre base de données SQL Server de production ou votre serveur de rapports, ou y être connectés, sans l'autorisation de l'administrateur système.

Voir aussi

Autres ressources

The SqlContext Object

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

5 décembre 2005

Contenu modifié :
  • Modification des instructions concernant la génération d'un fichier de clé, y compris le nom et l'emplacement de ce fichier.