it-swarm.com.de

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

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

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

Diese Konten sollten vermutlich für verschiedene Zwecke verwendet werden.

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

40
Lazer

SYS

  • Wird automatisch erstellt, wenn die Oracle-Datenbank installiert wird
  • Erteilt automatisch die Rolle DBA
  • Hat ein Standardkennwort: CHANGE_ON_INSTALL (stellen Sie sicher, dass Sie es ändern)
  • Besitzt die Basistabellen und Ansichten für das Datenbankdatenwörterbuch
  • Das Standardschema, wenn Sie eine Verbindung als SYSDBA herstellen

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

SYSTEM

  • Wird automatisch erstellt, wenn die Oracle-Datenbank installiert wird
  • Erteilt automatisch die Rolle DBA
  • Hat ein Standardkennwort: MANAGER (stellen Sie sicher, dass Sie es ändern)
  • Wird verwendet, um zusätzliche Tabellen und Ansichten zu erstellen, in denen Verwaltungsinformationen angezeigt werden
  • Wird zum Erstellen interner Tabellen und Ansichten verwendet, die von verschiedenen Oracle-Datenbankoptionen und -tools verwendet werden

Verwenden Sie niemals das Schema SYSTEM, um Tabellen zu speichern, die für nicht administrative Benutzer von Interesse sind.

/ via

43
Eddie Awad

Aus der 11g Oracle-Dokumentation :

SYS AND SYSTEM Benutzer

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

  • SYS

    Dieses Konto kann alle Verwaltungsfunktionen ausführen. Alle zugrunde liegenden (zugrunde liegenden) Tabellen und Ansichten für das Datenbankdatenwörterbuch werden im SYS-Schema gespeichert. Diese Basistabellen und -ansichten 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 das SYSDBA-Privileg gewährt, mit dem ein Benutzer allgemeine Verwaltungsaufgaben wie Sicherung und Wiederherstellung ausführen kann.

  • SYSTEM

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

    • Sicherung und Wiederherstellung

    • Datenbank-Upgrade

    Während dieses Konto für die Ausführung alltäglicher Verwaltungsaufgaben verwendet werden kann, empfiehlt Oracle dringend, 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 zum Ausführen von Verwaltungsvorgängen auf hoher Ebene erforderlich sind, z. B. zum Erstellen, Starten, Herunterfahren, Sichern oder Wiederherstellen der Datenbank. Das SYSDBA-Systemprivileg gilt für voll befugte Datenbankadministratoren, und das SYSOPER-Systemprivileg ermöglicht es einem Benutzer, grundlegende Betriebsaufgaben auszuführen, ohne jedoch Benutzerdaten anzeigen 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 gewährt werden können. Wenn Sie beispielsweise über die Berechtigung SYSDBA verfügen, können Sie mit AS SYSDBA eine Verbindung zur Datenbank herstellen.

Dem SYS-Benutzer wird bei der Installation automatisch das SYSDBA-Privileg gewährt. Wenn Sie sich als Benutzer SYS anmelden, müssen Sie als SYSDBA oder SYSOPER eine Verbindung zur Datenbank herstellen. Wenn Sie eine Verbindung als SYSDBA-Benutzer herstellen, wird das SYSDBA-Privileg aufgerufen. Das 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 dem SYSDBA- oder SYSOPER-Privileg 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 lautet das Schema PUBLIC.

21
Leigh Riffel

Ein Beispiel für einen großen Unterschied zwischen SYS (oder einer anderen SYSDBA-Verbindung) und jedem anderen Benutzer: SYS kann nicht konsistent lesen . Eine Implikation davon (es gibt andere) ist, dass Sie mit dem alten exp-Dienstprogramm keinen CONSISTENT = Y-Export als SYS durchführen können.

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

9
Stephen Kendall

Das hört sich so an, als ob das Poster sagt, dass es nur zwei Möglichkeiten gibt, eine Verbindung herzustellen:

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

sqlplus sys as sysdba
sqlplus system/manager"

Ein Administratorkonto ist ein 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 davon.

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 Betriebssystem-Eingabeaufforderung in einer CONNECT-Anweisung angeben oder sich 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 Poster 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) Beispiele wie sich SYS und SYSTEM mit SQL * Plus bei der Datenbank anmelden können.

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

0
Lance Ashdown