Freigeben über


Impersonation-Beispiel

Aktualisiert: 05. Dezember 2005

Das Impersonation-Beispiel zeigt, wie bei Verwenden der integrierten Sicherheit der Identitätswechsel verwendet wird, um mit den vom Client übergegebenen Anmeldeinformationen auf betriebssystemgeschützte Ressourcen, z. B. Dateien, zuzugreifen. Standardmäßig werden beim Zugriff auf diese Art von Ressourcen die Anmeldeinformationen des Kontos verwendet, unter dem SQL Server ausgeführt wird.

ms160785.note(de-de,SQL.90).gifHinweis:
Dieses Form des Identitätswechsels hat keine Auswirkung auf den Zugriff auf geschützte SQL Server-Ressourcen wie Tabellen, sofern Sie den Datenzugriff nicht über ADO.NET auf einem anderen Datenbankserver ausführen (SQL Server oder ein anderer Typ von Datenbankserver). In diesem Fall sollten Sie den Identitätswechsel bei der Ausführung der Open-Methode für die Verbindung verwenden, um die Anmeldeinformationen des Clients dem Remoteserver zu übergeben. Bei den anderen ADO.NET-Aufrufen sind keine Identitätswechsel erforderlich.

Dieses Beispiel zeigt außerdem, wie Sie mithilfe einer CLR (Common Language Runtime)-Tabellenwertfunktion auf Informationen zu den in einem Verzeichnis enthaltenen Dateien zugreifen.

Installationsverzeichnis: drive:\Programme\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\Impersonation\

Szenario

Jane ist eine Entwicklerin für Adventure Works Cycles. Sie möchte mithilfe der vom Client übergebenen Anmeldeinformationen auf Informationen zu den Dateien in einem Verzeichnis auf dem Server zugreifen.

Sprachen

Transact-SQL, Visual C# und Visual Basic.

Features

Das Impersonation-Beispiel verwendet die folgenden Features von SQL Server.

Anwendungsbereich Features

Gesamt

CLR, Sicherheit

Voraussetzungen

Stellen Sie vor dem Ausführen dieses Beispiels sicher, dass die folgende Software installiert ist:

  • Microsoft SQL Server 2005 oder Microsoft SQL Server 2005 Express Edition (SQL Server Express). SQL Server Express erhalten Sie kostenlos auf der SQL Server 2005 Express Edition Dokumentation und Beispiele-Website.
  • Die AdventureWorks-Datenbank, die im Lieferumfang von SQL Server 2005 enthalten und auch auf der SQL Server Developer-Website verfügbar ist.
  • Die Beispiele zu SQL Server 2005-Datenbankmodul. Diese Beispiele sind in SQL Server 2005 enthalten. Sie können die aktuelle Version der Beispiele von der SQL Server Developer-Website downloaden.
  • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Das .NET Framework SDK ist kostenlos erhältlich. Siehe Installieren des .NET Framework SDK.

Erstellen des Beispiels

Wenn Sie die Schlüsseldatei mit starkem Namen, ExternalSampleKey.snk, nicht bereits erstellt haben, generieren Sie die Schlüsseldatei mithilfe der folgenden Anweisungen.

So generieren Sie eine Schlüsseldatei mit starkem Namen

  1. Öffnen Sie eine Microsoft Visual Studio 2005-Eingabeaufforderung. Zeigen Sie im Menü Start auf Alle Programme, zeigen Sie auf Microsoft Visual Studio 2005 und anschließend auf Visual Studio-Tools, und klicken Sie dann auf Visual Studio 2005-Eingabeaufforderung.

    - Oder -

    Öffnen Sie ein Microsoft .NET Framework-Eingabeaufforderungsfenster. Klicken Sie auf Start, zeigen Sie auf Alle Programme und dann auf Microsoft .NET Framework SDK 2.0, und klicken Sie dann auf SDK-Eingabeaufforderung.

  2. Wechseln Sie an der Eingabeaufforderung mit dem Befehl CD (Change Directory) vom aktuellen Ordner des Eingabeaufforderungsfensters zum Ordner Samples.

    ms160785.note(de-de,SQL.90).gifHinweis:
    Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server 2005 und auf Documentation and Tutorials, und klicken Sie dann auf Samples Directory, um den Ordner zu ermitteln, in dem sich die Beispiele befinden. Wenn das Standardinstallationsverzeichnis verwendet wurde, sind die Beispieldateien am folgenden Speicherort installiert: <system_drive>:\Programme\Microsoft SQL Server\90\Samples\.
  3. Führen Sie an der Eingabeaufforderung den folgenden Befehl zum Generieren der Schlüsseldatei aus:

    sn -k ExternalSampleKey.snk

    ms160785.note(de-de,SQL.90).gifWichtig:
    Weitere Informationen zum Schlüsselpaar mit starkem Namen finden Sie unter "Security Briefs: Strong Names and Security in the .NET Framework" (in Englisch) im .NET Development Center auf MSDN.

So erstellen Sie das Impersonation-Beispiel

  1. Kompilieren Sie das Beispiel mithilfe von Visual Studio 2005 und der bereitgestellten Visual Studio-Projektmappe oder mithilfe von Microsoft MSBuild, das im Lieferumfang von .NET Framework SDK 2.0 enthalten ist. Führen Sie an einer Eingabeaufforderung einen Befehl aus, der dem folgenden ähnelt:

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

  2. Stellen Sie sicher, dass die AdventureWorks-Datenbank installiert ist.

  3. Wenn Sie die Modulbeispiele für SQL Server nicht im Standardspeicherort installiert haben, ändern Sie den CREATE ASSEMBLY-Abschnitt des Skripts in Scripts\InstallCS.sql und Scripts\InstallVB.sql, um auf den Speicherort zu verweisen, in dem die Beispiele installiert wurden.

  4. Wenn Sie keine Administratorrechte für die von Ihnen verwendete SQL Server-Instanz besitzen, müssen Sie sich von einem Administrator die CreateAssembly-Berechtigung erteilen lassen, um die Installation ausführen zu können.

  5. Öffnen Sie die Datei scripts\installCS.sql bzw. scripts\installVB.sql (je nachdem, ob Sie das Visual C#-Projekt oder das Visual Basic-Projekt kompiliert haben) in Microsoft SQL Server Management Studio. Führen Sie das in der Datei enthaltene Skript aus, oder führen Sie einen ähnlichen Befehl wie den folgenden an der Eingabeaufforderung aus:

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

Ausführen des Beispiels

So führen Sie das Impersonation-Beispiel aus

  1. Erstellen Sie im Ordner Eigene Dateien einen Ordner namens Test.

  2. Erstellen Sie in Editor eine leere Textdatei in diesem Ordner.

  3. Passen Sie die Sicherheit des Ordners mithilfe des Dialogfeldes Eigenschaften in Windows-Explorer an.

    1. Verwenden Sie die Schaltfläche Erweitert auf der Registerkarte Sicherheit, um die Vererbung der Sicherheitseinstellung des Ordners durch dessen übergeordneten Ordner zu deaktivieren.
    2. Verwenden Sie die Option Kopieren, um die Sicherheitseinstellungen des übergeordneten Ordners zu kopieren.
    3. Fügen Sie sich als Benutzer mit Vollberechtigung dem Ordner hinzu.
    4. Entfernen Sie alle anderen Benutzer.
  4. Öffnen Sie die Datei scripts\test.sql in Management Studio oder Editor. Ändern Sie die Datei, sodass nicht die GetEnvironmentVariable-Methode in der SELECT @TestDir-Anweisung aufgerufen wird, sondern Sie eine Konstantenzeichenfolge für den Wert der @TestDir-Variablen angeben. Der Code sollte ähnlich wie der folgende aussehen:

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

    Ersetzen Sie username durch Ihren Benutzernamen.

Führen Sie das Skript in Management Studio aus, oder speichern Sie die geänderte Datei in Editor, und führen Sie dann den folgenden Befehl an der Eingabeaufforderung aus:

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

Entfernen des Beispiels

So entfernen Sie das Impersonation-Beispiel

  1. Öffnen Sie die Datei scripts\cleanup.sql in Management Studio. Führen Sie das in der Datei enthaltene Skript aus, oder führen Sie den folgenden Befehl an der Eingabeaufforderung aus:

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

Kommentar

CLR für SQL Server 2005 oder SQL Server Express muss aktiviert sein, damit dieses Beispiel ordnungsgemäß ausgeführt werden kann.

Die Beispiele dienen nur zu Lernzwecken. Sie sind nicht für den Einsatz in einer Produktionsumgebung gedacht und wurden auch nicht in einer Produktionsumgebung getestet. Microsoft leistet keinen technischen Support für diese Beispiele. Beispielanwendungen und Assemblys sollten nicht ohne die Zustimmung des Systemadministrators mit der SQL Server-Datenbank oder dem Berichtsserver verbunden sein oder verwendet werden.

Siehe auch

Andere Ressourcen

The SqlContext Object

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

05. Dezember 2005

Geänderter Inhalt:
  • Die Anweisungen zum Generieren einer Schlüsseldatei wurden geändert, einschließlich des Namens und Speicherortes der Schlüsseldatei.