INF: Cross Besitzverkettung Geändertes Verhalten in SQL Server 2000 Servicepack 3

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 810474
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Zusammenfassung
Microsoft SQL Server Service Pack 3 (SP3) bietet während des Setup eine neue Option zur Verbesserung der Sicherheit für die Konfiguration datenbankübergreifenden Besitzverkettung namens Datenbankübergreifende Besitzverkettung für alle Datenbanken aktivieren. Dieser Artikel beschreibt die Cross besitzverkettung Verhalten in SQL Server 2000 SP3. Mit dieser neuen Option können Sie steuern, ob Sie datenbankübergreifenden Besitzketten ermöglichen. Standardmäßig ist diese Option deaktiviert. Microsoft empfiehlt, die Standardoption verwenden, da Datenbankserver sicherer macht.
Weitere Informationen

Besitzketten

Standardmäßig haben alle Datenbankobjekte Besitzer. Wenn ein Objekt z. B. eine Ansicht, eine gespeicherte Prozedur oder benutzerdefinierte Funktion ein anderes Objekt verweist, wird eine Besitzkette hergestellt. Z. B. eine Tabelle, die denselben Benutzer gehört. Alle Objekte (Tabellen, Ansichten oder anderen Objekten zugrunde) Ziel denselben Benutzer besitzt das Quellobjekt, Ansicht, gespeicherte Prozedur oder benutzerdefinierte Funktion, die Besitzkette soll nicht geöffnet. Wenn die Besitzkette nicht geöffnet ist, überprüft SQL Server Berechtigungen im Quellobjekt jedoch nicht auf die Zielobjekte.

Datenbankübergreifende Besitzketten

Datenbankübergreifende Besitzketten tritt auf, wenn das Quellobjekt für Objekte in einer anderen Datenbank abhängt. Eine datenbankübergreifende Besitz Kette funktioniert genauso wie Besitzketten in einer Datenbank, mit der Ausnahme, dass eine durchgängige Besitzkette auf alle Objektbesitzer demselben Anmeldekonto zugeordnet wird. Daher in eine datenbankübergreifende Besitzkette überprüft Wenn das Quellobjekt in der Quelldatenbank und das Zielobjekt in der Zieldatenbank demselben Anmeldekonto gehören SQL Server keine Berechtigungen für die Zielobjekte.

Wenn mehr als eine Datenbank von einer Anwendung verwendet und Aufruf von gespeicherten Prozeduren oder Sichten in einer Datenbank, die auf Objekte in einer anderen Datenbank dann datenbankübergreifenden Besitzketten verwendet. Anträge auf datenbankübergreifenden Besitzketten möglicherweise Zugriff verweigert Fehler bei deaktiviertem Besitz datenbankübergreifende Verkettung Option generiert.

Risiken datenbankübergreifenden Besitzketten

Microsoft empfiehlt, deaktivieren die Cross besitzverkettung Option aufgrund der hoch privilegierten Benutzer können Aktionen ausführen:
  • Datenbankbesitzer und Member der Db_ddladmin oder Datenbankrollen Db_owners können Objekte erstellen, die anderen Benutzern gehören. Diese Objekte können potenziell auf Objekte in anderen Datenbanken abzielen. Diese bieren Cross besitzverkettung aktivieren, müssen Sie vollständig Trustthese Benutzer Daten in allen Datenbanken. Führen Sie die folgenden Transact-SQLcommands Mitglied der Db_ddladmin und Db_owners Rollen in der aktuellen Datenbank um zu ermitteln:
    exec sp_helprolemember 'db_ddladmin' exec sp_helprolemember 'db_owner'
  • Benutzer mit der CREATE DATABASE-Berechtigung können Newdatabases erstellen und vorhandene Datenbanken anfügen. Wenn datenbankübergreifende Besitz Chainingis aktiviert, werden diese Benutzer Newlycreated Objekte in anderen Datenbanken zugreifen oder Datenbanken zugeordnet.
Obwohl Microsoft empfiehlt, dass Sie die datenbankübergreifenden Besitzketten für maximale Sicherheit deaktivieren, sind einige Umgebungen, vollständig hoch privilegierten Benutzer vertrauen. Daher können Sie zwischen den Datenbankbesitz für bestimmte Datenbanken müssen bestimmte Anwendungstypen.

Datenbankübergreifende Besitzketten während Setup konfigurieren

In Microsoft SQL Server Service Pack 3 (SP3) Setup wurde ein neues Dialogfeld hinzugefügt, ermöglichen dem Systemadministrator gesteuert, ob Cross Datenbank Besitzketten dürfen. Wenn Sie Cross besitzverkettung für alle Datenbanken in SQL Server 2000 SP3-Installation aktivieren, aktivieren Sie diese Option für alle Datenbanken. Dies war das Standardverhalten vor SQL Server 2000 SP3. Unabhängig von der Option, die Sie während der Installation auswählen, können Sie später Server und datenbankunterstützung für datenbankübergreifende Besitzketten Transact-SQL-Befehle oder von SQL Server Enterprise Manager ändern.

Datenbankübergreifende Besitzketten nach der Installation konfigurieren

Verwenden Sie zum Ändern der Besitz datenbankübergreifende Verkettung Konfiguration neuen Optionen in Sp_configure und Sp_dboption gespeicherte Prozeduren.

Hinweis Trennen und Anfügen eine Datenbank müssen Sie datenbankübergreifenden Besitzketten erneut aktivieren.
  • Konfigurieren von datenbankübergreifenden Besitzketten mithilfe von Transact-SQL-Befehlen:
    • Konfigurieren Sie datenbankübergreifende besitzverkettung Support für die Instanz von SQL Server mit der neuen Option Cross DB Ownership Chaining für Sp_configure. Wenn diese Option auf 0 festgelegt ist, können Sie steuern, datenbankübergreifenden Besitzketten Datenbankebene mithilfe von Sp_dboption. Wenn diese Option auf 1 festgelegt ist, können Sie die datenbankübergreifenden Besitzketten nicht einschränken. Dies ist dem Verhalten vor SQL Server 2000 SP3. Wenn Sie diese Option ändern, enthalten Sie die Option konfigurieren die Instanz konfigurieren, ohne ihn neu starten. Verwenden Sie beispielsweise den folgenden Befehl zu datenbankübergreifenden Besitzketten in allen Datenbanken:
      EXEC sp_configure 'Cross DB Ownership Chaining', '1'; RECONFIGURE 
    • Konfigurieren Sie datenbankübergreifende Besitzketten auf die neue Db Verkettung Option Sp_dboption. Wenn diese Option auf False festgelegt ist, kann nicht die Datenbank Teilnahme datenbankübergreifenden Besitzketten als Quelle oder Ziel-Datenbank. Wenn diese Option auf True die Datenbank festgelegt ist, kann eine datenbankübergreifende Besitzkette teilnehmen. Standardmäßig ist diese Option für alle Benutzerdatenbanken, nachdem Sie SQL Server 2000 SP3 anwenden. Der folgende Befehl aktiviert die datenbankübergreifenden Besitzketten für die Northwind-Datenbank:
      EXEC sp_dboption 'Northwind', 'db chaining', 'true'

    Die Effekte von Sp_dboption manifestieren sich nur, wenn die Option Cross DB Ownership ChainingSp_configure auf 0 festgelegt ist. Um datenbankübergreifende Ownershipchaining auf Datenbankebene zu aktivieren, müssen Sie auch diese Option sowohl die und die Zieldatenbank aktivieren.
  • Konfigurieren von datenbankübergreifenden Besitzketten mit SQL Enterprise Manager:
    • Gehen Sie folgendermaßen vor, um diese Option für alle Datenbanken festzulegen:
      1. Rechte Maustaste <server></server>.
      2. Klicken Sie auf Eigenschaften.
      3. Klicken Sie auf Sicherheit.
      4. Auf können datenbankübergreifenden Besitzketten im Abschnitt Besitzketten .
      5. Klicken Sie auf OK. Sie werden aufgefordert, beenden und starten Sie die SQL Server-Dienste.
      6. Klicken Sie auf OK .
    • Gehen folgendermaßen Sie vor, um diese Option auf Aktivieren
      1. Mit der rechten Maustaste die <database></database>.
      2. Klicken Sie auf Eigenschaften.
      3. Klicken Sie auf Optionen.
      4. Klicken Sie auf Zulassen datenbankübergreifende Besitzverkettung im Abschnitt

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 810474 – Letzte Überarbeitung: 12/08/2015 01:41:33 – Revision: 5.0

Microsoft SQL Server 2000 Service Pack 3

  • kbnosurvey kbarchive kbproductlink kbinfo kbsysadmin kbupgrade kbsqlserv2000sp3fea kbmt KB810474 KbMtde
Feedback
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)