2017-10-06 1 views
1

Bei der Arbeit mit Oracle-Datenbanken habe ich oft gelesen, dass man mit SYS keine Datenbanken manipulieren darf (Tabellen, Constraints, Sequenzen, Synonyme usw.). Warum wird es nicht empfohlen? Einige meiner Kollegen argumentieren, dass solange Sie voll qualifizierte Deskriptoren verwenden, es kein Problem bei der Verwendung von SYS geben sollte. Ist das wahr? Welche Probleme könnten in welchen Szenarien durch Manipulation einer Datenbank als SYS verursacht werden?Warum wird "SYS" nicht empfohlen, wenn eine Oracle-Datenbank manipuliert wird?

+3

Fragen Sie Ihre Kollegen, ob sie auf ihren Computern als "root" arbeiten. Als 'SYS' zu arbeiten, ist dasselbe wie 'root' - Sie tun das nur für Wartungsarbeiten, aber nicht um eine E-Mail oder ein Dokument zu schreiben. –

Antwort

1

Welche Probleme können in welchen Szenarien verursacht werden, indem eine Datenbank als SYS manipuliert wird? Beide

, SYS und SYSTEM sind default Benutzer, mit der Erstellung der Datenbank angelegt. Obwohl sie viel Power haben - wie sie die DBA role gewährt werden - sind sie immer noch normale Benutzer. Da SYS das Datenwörterbuch besitzt, gilt er als etwas spezieller als SYSTEM.

Aber SYS hat das SYSDBA-Privileg, das SYSTEM nicht tut. Dies macht es möglich, dass SYS ein sehr sehr mächtiger Benutzer wird. Der Unterschied wird klar, wenn Sie versuchen, shutdown die Datenbank als gewöhnliche SYS: Sie erhalten insufficient privileges als Ergebnis. Wenn es jedoch als SYSDBA verbunden ist, ist es möglich.

Hinweis, SYSDBA ist keine Rolle, es ist ein privilege.

SYS ist auch speziell in diesem ist es nicht möglich, einen Trigger im Systemschema zu erstellen. Außerdem wird ein Anmeldetrigger nicht ausgeführt, wenn sys eine Verbindung zur Datenbank herstellt.

SYS

SYS ist der Eigentümer der Datenbank und der Besitzer des Datenwörterbuch.

Erstellen Sie niemals Objekte im SYS-Schema.

Die zu SYS gehörenden Objekte können nicht exportiert werden.

SYSTEM

SYSTEM ist eine privilegierte Verwaltung Benutzer und besitzt typischerweise bereitgestellt Oracle anderen Tabellen als das Wörterbuch. Erstellen Sie keine eigenen Objekte unter SYSTEM.

1

Da SYS die Datenbank besitzt.

Es kann alles tun. Wenn Ihre Kollegen vergessen, dem Zielobjekt das Zielschema voranzulegen, können sie das SYS-Schema beschädigen und/oder die Datenbank beschädigen.

Ich wäre besorgt, wenn zu viele Leute das SYS-Passwort kannten. Weil es Auditing-Probleme verursacht. Wenn etwas schief geht und es wird, ist es schwieriger zu wissen, wer dafür verantwortlich ist, es sei denn, sie besitzen etwas. Keine Kultur zu beschuldigen ist eine gute Kultur, aber die Menschen sind vorsichtiger, wenn sie wissen, dass sie verantwortlich sind.

Dies ist nicht nur eine Sicherheitsfrage. Es ist nicht nur zufällige Korruption, über die Sie sich Sorgen machen müssen.Ein schlechter Akteur mit dem SYS-Passwort kann die Datenbank sabotieren, Code stehlen (IPR) und natürlich vertrauliche Daten entziehen.

Vielleicht reden Sie nur über Entwicklung und Ihre Organisation macht Dinge richtig in der Produktion. Ich hoffe es.

Die Verwendung von SYS ist wie eine Abkürzung über die Bahngleise. Wahrscheinlich geht es Ihnen gut, aber warum sollten Sie das Risiko eingehen?

Verwandte Themen