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.
Remarque : |
---|
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
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.
À 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.
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 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. À l'invite de commandes, exécutez la commande suivante pour générer le fichier de clé :
sn -k ExternalSampleKey.snk
Important : 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
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
Vérifiez que la base de données AdventureWorks est installée.
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.
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.
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
Dans le dossier Mes documents, créez un dossier nommé Test.
À l'aide du Bloc-notes, créez un fichier texte vide dans ce dossier.
Configurez la sécurité du dossier à l'aide de la boîte de dialogue Propriétés dans l'Explorateur Windows.
- 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.
- Utilisez l'option Copier pour copier les paramètres de sécurité du parent.
- Ajoutez votre compte en tant qu'utilisateur doté d'un accès complet au dossier.
- Supprimez tous les autres utilisateurs.
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'instructionSELECT @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
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
Aide et Informations
Assistance sur SQL Server 2005
Historique des modifications
Version | Historique |
---|---|
5 décembre 2005 |
|