Berechtigungen zum Herstellen einer Verbindung mit einer Remotezugriffsdatenbank über ASP.NET

In diesem Artikel werden die Berechtigungen zum Herstellen einer Verbindung mit einer Remotezugriffsdatenbank erläutert.

Ursprüngliche Produktversion:   ASP.NET
Ursprüngliche KB-Nummer:   307901

Zusammenfassung

In diesem Artikel werden die Mindestsicherheitseinstellungen aufgeführt, die zum Herstellen einer Verbindung mit einer Microsoft Access-Remotedatenbank von ASP.NET erforderlich sind, einschließlich:

  • einstellungen für Windows NT-Dateisystem (NTFS)
  • iis-Einstellungen (Microsoft-Internetinformationsdienste)
  • Lokale Sicherheitsrichtlinieneinstellungen
  • Einstellungen für ASP.NET Konfigurationsdatei (Web.config)

In diesem Artikel wird nicht beschrieben, wie Datenbankverbindungen konfiguriert werden.

Weitere Informationen

Wenn Benutzer zu einer ASP.NET Website navigieren, fordern sie die Ausführung von Code auf dem Server an. Alle Prozesse werden im Sicherheitskontext eines bestimmten Kontos ausgeführt. Standardmäßig verwendet IIS das Systemkonto. Das Systemkonto hat Vollzugriff auf den IIS-Servercomputer, darf jedoch nicht auf freigegebene Ordner auf anderen Computern zugreifen (die manchmal als NTFS-Ressourcen bezeichnet werden). Daher müssen Sie den IIS-Computer so konfigurieren, dass er ein anderes Konto als das Systemkonto verwendet. Im Abschnitt "Konfigurieren des IIS-Servers" werden verschiedene Möglichkeiten zum Auswählen eines alternativen Kontos beschrieben.

Nachdem IIS für die Ausführung unter einem anderen Konto festgelegt wurde, müssen Sie diesem Konto die Berechtigung für alle Dateien und Ordner erteilen, die für die Verwendung der Remotezugriffsdatenbank erforderlich sind, einschließlich:

  • Temporärer Ordner auf dem IIS-Server.
  • Freigeben auf dem Remotecomputer.
  • NTFS-Dateisystemberechtigungen für die Datenbankdatei und ihren Ordner.
  • Zugriff auf den Remotecomputer über das Netzwerk.
  • Berechtigung zum Anmelden am Remotecomputer.

Im Abschnitt "Konfigurieren von Access Server" wird beschrieben, wie diese Berechtigungen für das Konto festgelegt werden.

Konfigurieren des IIS-Servers

In diesem Abschnitt wird beschrieben, wie Sie den IIS-Server konfigurieren.

Verwenden der Web.config-Datei zum Aktivieren des Identitätswechsels

Um eine Verbindung mit einer Remotezugriffsdatenbank herzustellen, müssen ASP.NET ein Sicherheitstoken für den Benutzer übergeben, dessen Identität er an den Remoteserver angibt. Wenn Sie den Identitätswechsel in der Web.config-Datei nicht aktivieren, verwendet ASP.NET standardmäßig das Systemkonto. Das Systemkonto kann sich jedoch nicht über das Netzwerk authentifizieren. Um ein anderes Konto zu verwenden, fügen Sie <identity impersonate="true" /> der Web.config-Datei für eine bestimmte ASP.NET Anwendung ein Tag hinzu. Zum Beispiel:

<configuration>
  <system.web>
     ...
     <identity impersonate="true" />
     ...
  </system.web>
</configuration>

Unter dieser Konfiguration nimmt ASP.NET die Identität des authentifizierten Benutzers von IIS an.

Verwenden einer Authentifizierungsmethode zum Auswählen einer Identität

Verwenden Sie eine der folgenden Authentifizierungsmethoden, um eine Identität auszuwählen:

  • Anonyme Authentifizierung
    Sie können konfigurieren, welches Konto im Internet Services Manager verwendet werden soll. Standardmäßig ist dies auf das Internet-Gastkonto oder IUSR_ ComputerName festgelegt. Unabhängig davon, welches Konto Sie verwenden, wenn Sie ein lokales Konto (anstelle eines Domänenkontos) verwenden, müssen Sie die Schritte im Abschnitt "Lokale Benutzerkonten des IIS-Computers replizieren" ausführen.

  • Standardauthentifizierung
    Diese Authentifizierungsmethode erfordert, dass der Endbenutzer einen Benutzernamen und ein Kennwort eingibt, die auf Ihrem IIS-Computer oder in einer Domäne definiert sind, der Ihr IIS-Computer vertraut. Da dies mehrere Benutzer-IDs zulässt, müssen Sie einer Gruppe alle diese IDs hinzufügen. Wenn in diesem Artikel angegeben wird, dass dem imitierten Benutzer Berechtigungen erteilt werden sollen, erteilen Sie diese Berechtigungen stattdessen dieser Gruppe.

Wenn eines dieser Konten ein lokales Konto auf dem IIS-Computer ist, müssen Sie jedes lokale Konto auf dem Remotezugriffscomputer replizieren. Führen Sie dazu die Schritte im Abschnitt "Lokale Benutzerkonten des IIS-Computers replizieren" aus.

  • Integrierte Windows-Authentifizierung
    Diese Authentifizierungsmethode funktioniert nur, wenn Ihr Netzwerk für die Verwendung der Authentifizierung eingerichtet ist Kerberos und die Computer und Konten als vertrauenswürdig für die Delegierung eingerichtet sind. Andernfalls können Sie die integrierte Windows-Authentifizierung nicht verwenden, um auf Daten in einer NTFS-Remoteressource zuzugreifen. Dies liegt daran, dass die integrierte Windows-Authentifizierung nur den Zugriff auf den IIS-Server und keine zusätzlichen NTFS-Ressourcen ermöglicht, auf die der IIS-Server remote zugreift.

  • einstellung fürWeb.config
    Verwenden Sie die dateiWeb.config, um ASP.NET so zu konfigurieren, dass die Identität eines bestimmten Domänenkontos angenommen wird, das über die erforderlichen Zugriffsberechtigungen auf dem Remotecomputer verfügt. Standardmäßig wird IIS festgelegt, um zu verhindern, dass andere Personen, die Ihre Website anzeigen, den Inhalt der Web.config-Datei sehen. Diese Methode erfordert jedoch, dass Sie den Benutzernamen und das Kennwort im Klartext auf dem Server speichern.

<configuration>
  <system.web>
     ...
     <identity impersonate="true" userName="<supplied username>" password="<supplied password>" />
     ...
  </system.web>
</configuration>
  • Außerkraftsetzen der Authentifizierung In den obigen Anweisungen werden die <identity impersonate="true" /> Tag- und Authentifizierungsmethoden verwendet, damit der ASP-Code als Benutzerkonto und nicht als Systemkonto ausgeführt wird. Unabhängig von den Identitätswechsel- oder Authentifizierungseinstellungen gibt es andere, weniger gängige Methoden zum Ausführen als Benutzerkonto. In der folgenden Liste werden zwei dieser alternativen Methoden beschrieben, wobei details für diese Methoden den Rahmen dieses Artikels sprengen.

    • Separater Prozess Sie können alle Datenzugriffsfunktionen in einer ActiveX Dynamic Link Library (DLL) und diese DLL in Component Services platzieren. Anschließend müssen Sie die Einstellungen der Komponentendienste für diese Komponente so konfigurieren, dass sie als eigener Prozess (Serverbibliothek) ausgeführt wird. Geben Sie auf der Registerkarte "Identität" in "Komponentendienste" das Benutzerkonto an, das Sie verwenden möchten.

    • Programmierschnittstellen für Identitätswechselanwendungen Sie können eine ActiveX DLL erstellen, die Anwendungsprogrammierschnittstellen (APPLICATION Programming Interfaces, APIs) verwendet, um vom Benutzerkonto, das derzeit verwendet wird, zu einem beliebigen anderen Konto zu wechseln. Sie können dann die Access-Datenbank verwenden, während Sie als dieser andere Benutzer ausgeführt werden.

Konfigurieren des Zugriffs auf den temporären Ordner

Das Microsoft Jet-Datenbankmodul schreibt temporäre Dateien in den Ordner Temp auf dem lokalen Computer (in diesem Fall der IIS-Server). Sie müssen die entsprechenden Berechtigungen für diesen Ordner "Temp" festlegen.

  • NTFS-Berechtigungen Diese Einstellung erfordert, dass die Benutzeridentität (die durch die vorherigen Identitätswechselanweisungen bestimmt wird) über NTFS-Vollzugriffsberechtigungen für den Ordner "Temp" verfügt.

  • TEMP- und TMP-Umgebungsvariablen Möglicherweise müssen Sie die Temp- und TMP-Umgebungsvariablen für das System definieren. Wenn die Variablen TEMP und TMP nicht auf dem IIS-Server konfiguriert sind, versucht das Jet-Modul, diese Dateien in den Ordner zu Windows\System32 schreiben. Da dies für die meisten Websites möglicherweise nicht akzeptabel ist, ist es üblich, TEMP- und TMP-Variablen zu konfigurieren.

Diese Variablen sind häufig bereits für interaktive Benutzer auf dem Computer konfiguriert. Da die von IIS ausgehenden Prozesse jedoch keinen Zugriff auf diese Variablen haben, müssen Sie möglicherweise TEMP- und TMP-Variablen für das System konfigurieren. Führen Sie die folgenden Schritte in Microsoft Windows 2000 aus, um TEMP- und TMP-Variablen für das System zu konfigurieren:

  1. Klicken Sie auf dem IIS-Computer mit der rechten Maustaste auf "Mein Computer", und klicken Sie dann auf "Eigenschaften".

  2. Klicken Sie auf der Registerkarte "Erweitert" auf "Umgebungsvariablen".

  3. Suchen Sie unter Systemvariablen nach der TEMP-Variablen. Wenn diese Variable nicht vorhanden ist, führen Sie die folgenden Schritte aus, um sie hinzuzufügen:

    1. Klicken Sie im Dialogfeld "Umgebungsvariablen" auf "Neu".
    2. Geben Sie im Dialogfeld Neue Systemvariable im Textfeld Variablenname TEMP ein.
    3. Geben Sie im Textfeld Variabler Wert den Speicherort des Ordners Temp auf dem Computer ein, und klicken Sie dann auf OK.
  4. Wiederholen Sie die Schritte 3a bis 3c für die TMP-Variable.

Konfigurieren des Zugriffsservers

In diesem Abschnitt wird beschrieben, wie Sie den Microsoft Access-Server konfigurieren.

Konfigurieren von NTFS-Berechtigungen

Wenn das Dateisystem auf dem Remotecomputer NTFS ist, müssen Sie die Berechtigungen auf dem Remotecomputer korrekt festlegen, wenn Sie jedoch die Identität von Konten innerhalb ASP.NET annehmen möchten. Sie müssen beispielsweise die folgenden Berechtigungen für die Datenbankdatei festlegen:

  • Lesen
  • Schreiben
  • Ausführen
  • Ändern

Darüber hinaus müssen Sie die folgenden Berechtigungen für den Ordner festlegen, in dem sich die Datei befindet:

  • Lesen
  • Schreiben
  • Ausführen
  • Löschen
  • Ändern

Wenn mehrere mögliche Benutzerkonten vorhanden sind, z. B. in der Standard- oder Digestauthentifizierung, erstellen Sie eine Gruppe, fügen Sie die Benutzerkonten zu dieser Gruppe hinzu, und erteilen Sie der Gruppe dann Berechtigungen.

Konfigurieren von Freigabeberechtigungen

Wie NTFS-Dateisystemberechtigungen müssen Sie auch Freigabeberechtigungen festlegen, um den Zugriff für denselben Benutzer, benutzer oder dieselbe Gruppe zuzulassen.

Möglicherweise sind Sie versucht, die administrativen Freigaben zu verwenden, die Windows für jedes Laufwerk (z. B. das Laufwerk C) erstellt. Es ist jedoch besser, eine neue Freigabe zu erstellen, da für die administrativen Freigaben alle Benutzer, die die Freigabe verwenden, zur Gruppe "Administratoren" hinzugefügt werden müssen.

Wenn die Datenbank auf einer anderen Plattform als einer Microsoft Windows-Plattform gespeichert ist, müssen Sie diese Freigabe für die Zielplattform entsprechend konfigurieren.

Replizieren der lokalen Benutzerkonten des IIS-Computers

Um dem imitierten Benutzer Freigabe- und NTFS-Berechtigungen zu erteilen, muss der Access-Computer dieses Benutzerkonto erkennen. Wenn es sich bei dem Konto um ein Domänenkonto handelt, können Sie es den Berechtigungslisten auf beiden Computern hinzufügen. Wenn es sich bei einem oder mehreren der Konten um ein lokales Konto auf dem IIS-Computer handelt, wird es auf dem Access-Computer nicht erkannt. Um dieses Problem zu beheben, verwenden Sie denselben Benutzernamen und dasselbe Kennwort, um ein doppeltes lokales Konto auf dem Access-Computer zu erstellen.

Konfigurieren lokaler Sicherheitsrichtlinienberechtigungen

Sie müssen auch dasselbe Konto, dieselben Konten oder Gruppenberechtigungen für den Zugriff auf den Computer in der lokalen Sicherheitsrichtlinie erteilen, es sei denn, das Konto oder die Konten gehören bereits zu einer Gruppe mit Berechtigungen (z. B. der Gruppe "Jeder"). Sie müssen die folgenden Berechtigungen erteilen:

  • Lokale Anmeldung
  • Auf diesen Computer über das Netzwerk zugreifen

Führen Sie die folgenden Schritte aus, um auf den Editor für lokale Sicherheitsrichtlinien zuzugreifen:

  1. Doppelklicken Sie in der Systemsteuerung auf "Verwaltung", und doppelklicken Sie dann auf "Lokale Sicherheitsrichtlinie".
  2. Erweitern Sie den Knoten "Sicherheit Einstellungen", den Knoten "Lokale Richtlinien" und den Knoten "Benutzerrechtezuweisung", um auf die Lokale Anmeldeberechtigung und den Zugriff auf diesen Computer über die Netzwerkberechtigung zuzugreifen.