Was ist der Unterschied zwischen Sys- und Systemkonten in Oracle-Datenbanken?

39

Es gibt zwei Möglichkeiten, mit sqlplus als Administrator eine Verbindung zu Oracle herzustellen:

  1. sqlplus sys as sysdba
  2. sqlplus system/manager

Ich nehme an, diese Konten sollten für verschiedene Zwecke verwendet werden.

Für welche Aufgaben sind diese beiden Schemata gedacht? Wann sollte ich den einen oder anderen unter ihnen benutzen?

Laser
quelle

Antworten:

43

SYS

  • Wird bei der Installation der Oracle-Datenbank automatisch erstellt
  • Erteilte die DBARolle automatisch
  • Hat ein Standardkennwort: CHANGE_ON_INSTALL (stellen Sie sicher, dass Sie es ändern)
  • Besitzt die Basistabellen und Sichten für das Datenbankdatenwörterbuch
  • Das Standardschema, wenn Sie eine Verbindung herstellen als SYSDBA

Tabellen im SYSSchema werden nur von der Datenbank bearbeitet. Sie sollten niemals von einem Benutzer oder Datenbankadministrator geändert werden, und niemand sollte Tabellen im Schema des Benutzers erstellen SYS. Datenbankbenutzer sollten über das SYSKonto keine Verbindung zur Oracle-Datenbank herstellen .

SYSTEM

  • Wird bei der Installation der Oracle-Datenbank automatisch erstellt
  • Erteilte die DBARolle automatisch
  • Hat ein Standardkennwort: MANAGER (stellen Sie sicher, dass Sie es ändern)
  • Dient zum Erstellen zusätzlicher Tabellen und Ansichten, in denen Verwaltungsinformationen angezeigt werden
  • Dient zum Erstellen interner Tabellen und Ansichten, die von verschiedenen Oracle-Datenbankoptionen und -Tools verwendet werden

Verwenden Sie das SYSTEMSchema niemals zum Speichern von Tabellen, die für Benutzer ohne Administratorrechte von Interesse sind.

/über

Eddie Awad
quelle
19
In der Praxis ist jeder DBA sqlplus / as sysdbafür die tägliche Arbeit zuständig - in 15 Jahren bei der Arbeit mit Dutzenden erfahrener DBAs bin ich nie auf jemanden gestoßen, der sich um das SYSTEMKonto kümmert .
Gaius
21

Aus der 11g Oracle-Dokumentation :

SYS UND SYSTEM Benutzer

Die folgenden administrativen Benutzerkonten werden automatisch erstellt, wenn Sie Oracle Database installieren. Beide werden mit dem Kennwort erstellt, das Sie bei der Installation angegeben haben, und beide erhalten automatisch die DBA-Rolle.

  • SYS

    Dieses Konto kann alle Verwaltungsfunktionen ausführen. Alle Basistabellen und Sichten für das Datenbankdatenwörterbuch werden im SYS-Schema gespeichert. Diese Basistabellen und Sichten sind für den Betrieb von Oracle Database von entscheidender Bedeutung. Um die Integrität des Datenwörterbuchs zu gewährleisten, werden Tabellen im SYS-Schema nur von der Datenbank bearbeitet. Sie sollten niemals von einem Benutzer oder Datenbankadministrator geändert werden. Sie dürfen keine Tabellen im SYS-Schema erstellen.

    Dem SYS-Benutzer wird die Berechtigung SYSDBA erteilt, die es einem Benutzer ermöglicht, allgemeine Verwaltungsaufgaben wie das Sichern und Wiederherstellen auszuführen.

  • SYSTEM

    Dieses Konto kann alle Verwaltungsfunktionen mit Ausnahme der folgenden ausführen:

    • Sicherung und Wiederherstellung

    • Datenbank-Upgrade

    Mit diesem Konto können Sie tägliche Verwaltungsaufgaben ausführen. Oracle empfiehlt jedoch nachdrücklich, ein Konto für benannte Benutzer für die Verwaltung der Oracle-Datenbank zu erstellen, um die Überwachung der Datenbankaktivität zu ermöglichen.

SYSDBA- und SYSOPER-Systemberechtigungen

SYSDBA und SYSOPER sind Administratorrechte, die für Verwaltungsvorgänge auf hoher Ebene erforderlich sind, z. B. zum Erstellen, Starten, Herunterfahren, Sichern oder Wiederherstellen der Datenbank. Das SYSDBA-Systemprivileg richtet sich an vollständig befugte Datenbankadministratoren, und das SYSOPER-Systemprivileg ermöglicht es einem Benutzer, grundlegende betriebliche Aufgaben auszuführen, ohne jedoch auf Benutzerdaten zugreifen zu können.

Die Systemberechtigungen SYSDBA und SYSOPER ermöglichen den Zugriff auf eine Datenbankinstanz, auch wenn die Datenbank nicht geöffnet ist. Die Kontrolle über diese Berechtigungen liegt daher vollständig außerhalb der Datenbank. Mit diesem Steuerelement kann ein Administrator, dem eine dieser Berechtigungen erteilt wurde, eine Verbindung zur Datenbankinstanz herstellen, um die Datenbank zu starten.

Sie können sich die Berechtigungen SYSDBA und SYSOPER auch als Verbindungstypen vorstellen, mit denen Sie bestimmte Datenbankvorgänge ausführen können, für die Berechtigungen auf keine andere Weise erteilt werden können. Wenn Sie beispielsweise über die Berechtigung SYSDBA verfügen, können Sie mit AS SYSDBA eine Verbindung zur Datenbank herstellen.

Der SYS-Benutzer erhält bei der Installation automatisch die Berechtigung SYSDBA. Wenn Sie sich als Benutzer SYS anmelden, müssen Sie als SYSDBA oder SYSOPER eine Verbindung zur Datenbank herstellen. Wenn Sie sich als SYSDBA-Benutzer verbinden, wird das SYSDBA-Privileg aufgerufen. Verbinden als SYSOPER ruft das SYSOPER-Privileg auf. Mit Oracle Enterprise Manager Database Control können Sie sich nicht als Benutzer SYS anmelden, ohne eine Verbindung als SYSDBA oder SYSOPER herzustellen.

Wenn Sie eine Verbindung mit der Berechtigung SYSDBA oder SYSOPER herstellen, stellen Sie eine Verbindung mit einem Standardschema her, nicht mit dem Schema, das im Allgemeinen Ihrem Benutzernamen zugeordnet ist. Für SYSDBA lautet dieses Schema SYS. Für SYSOPER ist das Schema PUBLIC.

Leigh Riffel
quelle
8

Ein Beispiel für einen Hauptunterschied zwischen SYS (oder einer anderen SYSDBA-Verbindung) und jedem anderen Benutzer: SYS kann keine konsistenten Lesevorgänge ausführen . Dies hat unter anderem zur Folge, dass Sie mit dem alten Dienstprogramm exp keinen CONSISTENT = Y-Export als SYS ausführen können.

Der Oracle-Mitarbeiter und Experte Tom Kyte ist der Meinung, dass Sie selten eines von beiden verwenden sollten . In Bezug auf SYS weist er darauf hin, dass es anders funktioniert, als im obigen Beispiel angegeben, aber allgemeiner betrachtet er sie als "Eigentum" der Oracle Corporation. Wenn Sie in einem der beiden Schemata eine Änderung vornehmen oder etwas hinzufügen und ein Problem auftritt (z. B. ein Datenbank-Upgrade fehlschlägt), lautet die Antwort des Oracle-Supports vermutlich "Das hätten Sie nicht tun sollen."

Stephen Kendall
quelle
0

Das hört sich so an, als würde das Poster sagen, dass es nur zwei Möglichkeiten gibt, eine Verbindung herzustellen:

"Es gibt zwei Möglichkeiten, mit sqlplus als Administrator eine Verbindung zu Oracle herzustellen:

sqlplus sys as sysdba
sqlplus system/manager"

Ein Administratorkonto ist ein beliebiges Oracle-Benutzerkonto mit der Berechtigung SYSDBA oder der DBA-Rolle. SYS ist ein vordefinierter Benutzer mit SYSDBA und SYSTEM ist ein vordefinierter Benutzer mit DBA. Wenn eine Datenbank n Administratorkonten enthält, gibt es n Benutzer, die (per Definition) eine Verbindung mit Administratorrechten herstellen können - es gibt nicht nur zwei von ihnen.

Ein weiterer Punkt betrifft SQL * Plus. Sie können eine Verbindung als SYS mithilfe der Betriebssystemauthentifizierung an der Eingabeaufforderung des Betriebssystems herstellen: sqlplus / as sysdba. Sie können auch SQL * Plus und dann CONNECT / AS SYSDBA starten. Sie können ein Kennwort an der Eingabeaufforderung des Betriebssystems oder in einer CONNECT-Anweisung angeben oder von SQL * Plus dazu auffordern lassen. Sie können einen Netzdienstnamen verwenden. Sie können (und sollten) das SYSTEM-Passwort ändern. Und so weiter.

Ich denke, das Plakat wollte sagen, dass eine Oracle-Datenbank mindestens zwei Administratorkonten enthält. Wenn SYSTEM das Standardkennwort hat und die Betriebssystemauthentifizierung eingerichtet ist, sind dies zwei (von vielen) Beispielen für wie SYS und SYSTEM sich mit SQL * Plus bei der Datenbank anmelden können.

Die Frage nach dem Unterschied zwischen SYS und SYSTEM ist unterschiedlich und wurde beantwortet.

Lance Ashdown
quelle