Partager via


Exemple Readme_Impersonation

Cet exemple fonctionne uniquement avec SQL Server 2005 et SQL Server 2008. Il ne fonctionnera pas avec les versions de SQL Server antérieures à SQL Server 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.

Remarque :
Ce formulaire d'emprunt d'identité n'affecte pas l'accès aux ressources protégées de SQL Server telles que les tables, à moins que vous n'effectuiez l'accès aux données d'un autre serveur de base de données (SQL Server ou quelque 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 passer les informations d'identification 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 : C:\Program Files\Microsoft SQL Server\100\Samples\Engine\Programmability\CLR\Impersonation\

Les exemples SQL Server et les exemples de bases de données doivent être téléchargés et installés avant que vous ne puissiez les afficher ou les utiliser. Pour plus d'informations, consultez Considérations relatives à l'installation d'exemples de bases de données et d'exemples de code SQL Server.

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, Microsoft ou SQL Server Express Vous pouvez obtenir SQL Server Express gratuitement à partir du site Web SQL Server Express Documentation et exemples.
  • La base de données AdventureWorks fournie avec SQL Server et également disponible sur le site Web SQL Server Developer.
  • Exemples du Moteur de base de données SQL Server. Ces exemples accompagnent SQL Server. 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 de la documentation .NET Framework..

Génération de l'exemple

Si vous n'avez pas encore créé un fichier de clé de nom fort, 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 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.

    -- ou --

    Ouvrir un invite de commandes 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. Utilisez la commande CD (changer de répertoire) pour remplacer le dossier actif dans la fenêtre de l'invite de commandes par le dossier dans lequel les exemples sont installés.

    Remarque :
    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 Samples. Si l'emplacement d'installation par défaut a été utilisé, les exemples sont stockés dans <lecteur_système>:\Program Files\Microsoft SQL Server\100\Samples.
  3. À partir de l'invite de commandes, exécutez la commande suivante pour générer le fichier de clé :

    sn -k SampleKey.snk

    Important :
    Pour plus d'informations sur les paires de clés de noms forts, consultez les notes d'informations de sécurité traitant des noms forts et de la sécurité dans .NET Framework (éventuellement en anglais), disponibles 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, le CLR pour SQL Server ou SQL Server Express doit être activé.

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 2008