Mein Oracle DBA-Kollege fordert Root-Zugriff auf unseren Produktionsservern an .
Er argumentiert, dass er es für einige Vorgänge wie den Neustart des Servers und einige andere Aufgaben benötigt.
Ich bin nicht mit ihm einverstanden, da ich ihm einen Oracle-Benutzer / eine Oracle-Gruppe und eine DBA-Gruppe zugewiesen habe, zu denen der Oracle-Benutzer gehört. Alles läuft reibungslos und ohne dass der DBA derzeit Root-Zugriff hat.
Ich denke auch, dass alle administrativen Aufgaben wie der geplante Neustart des Servers vom richtigen Administrator ausgeführt werden müssen (der Systemadministrator in unserem Fall), um Probleme im Zusammenhang mit einem Missverständnis der Infrastrukturinteraktionen zu vermeiden.
Ich hätte gerne Eingaben sowohl von Sysadmins als auch von Oracle-DBAs. Gibt es einen guten Grund für einen Oracle-DBA, in einer Produktionsumgebung Root-Zugriff zu haben ?
Wenn mein Kollege diese Zugriffsebene wirklich benötigt, werde ich sie bereitstellen, aber ich habe aus Sicherheits- und Systemintegritätsgründen große Angst davor.
Ich suche nicht nach Vor- oder Nachteilen, sondern nach Ratschlägen, wie ich mit dieser Situation umgehen soll.
SYSDBA
Zugriff benötigen .Antworten:
Wer installiert Oracle auf den Servern?
Wenn es der DBA ist, benötigen sie Root-Zugriff. Wenn es sich um Sysadmin handelt, ist dies beim DBA nicht der Fall.
Wer wird spät nachts angerufen, wenn der Datenbankserver ausfällt?
Wenn Sie nicht sicherstellen können, dass Sysadmins rund um die Uhr verfügbar sind, möchten Sie möglicherweise Root-Zugriff auf den DBA gewähren.
Denken Sie daran, dass, wenn Ihr DBA bereits als regulärer Benutzer über Shell-Zugriff verfügt (mit oder ohne Befehle, die er über sudo ausführen kann; mit oder ohne Chroot), dies ausreicht, um sich mit dem Server herumzuschlagen (ein böser Kerl, der sein Konto stiehlt, kann Bomben abwerfen) , überschreiten Sie die Grenze für das Senden von Spam, löschen Sie die Datenbank, ...).
Aus all diesen Gründen denke ich, dass DBAs in einer idealen Welt keinen Root-Zugriff haben sollten . aber in der realen Welt sollten sie zumindest im Notfall immer in der Lage sein, es zu erhalten.
quelle
sudo
gültige sudo-Regeln verwenden, anstatt root-Zugriff zu gewähren.sudo
und Gewähren von uneingeschränktem Root-Zugriff für Benutzer ist ein wichtiger Schritt ZURÜCK in Bezug auf die Systemsicherheit. Ich werde ehrlich sein, wenn Ihre Chefsachensudo
"esoterische Technologie" sind, sind sie ein Idiot.Im Allgemeinen - und nicht spezifisch für Datenbankadministratoren - ist jeder, der
root
ohne Angabe eines gültigen Grundes Zugriff verlangt, entweder:Nun, es mag echte Gründe geben, warum sie
root
Zugriff benötigen , um ihre Aufgabe zu erledigen, aber auch hier würde ich mich nicht mit ihnen befassen, wenn sie nicht erklären können, warum und schriftlich. Profis, die sich mit Servern befassen, verstehen und respektieren Grenzen. Heiße Schüsse, die genug wissen, um in Schwierigkeiten zu geraten, glauben, dass die Regeln für alle außer ihnen gelten.In Fällen, in denen ich mich mit Leuten wie diesen herumschlagen musste, habe ich darauf bestanden, dass die Zeit im Voraus festgelegt wird, damit ich mit ihnen auf dem Server sein kann, um auftretende Probleme zu behandeln. Und das hat tatsächlich gut funktioniert.
Eine andere - möglicherweise nicht praktikable - Alternative besteht darin, einen genauen Klon des betreffenden Servers zu erstellen und diesen
root
Zugriff darauf zu gewähren . Vergewissern Sie sich natürlich, dass Sie das Passwort in ein spezielles Passwort ändern. Lassen Sie sie eine isolierte Entwicklungskiste in die Luft jagen.Aber im Allgemeinen, wenn Sie derjenige sind, der spät nachts angerufen wird, um ein Durcheinander zu beseitigen, das dieser Typ verursachen könnte, dann haben Sie das Recht, zu einer pauschalen Anfrage nach
root
Zugang nein zu sagen .quelle
Theoretisch können DBAs ohne Root-Privilegien arbeiten, aber es ist PITA für beide Seiten. Es ist praktisch unmöglich, eine Befehlsliste zu definieren, über die zugegriffen werden kann
sudo
.Geben Sie DBAs root-Rechte, wenn:
DBAs benötigen normalerweise root-Rechte für: Kernel-Parameter-Anpassungen (sysctl), Speichermanipulation und Problemuntersuchungen.
Eine ordnungsgemäße Prüfung gewährleistet bessere Ausführungsbedingungen als streng definierte Sicherheitsregeln. Wenn Sie Auditing implementiert haben, können Sie immer fragen, warum sie etwas getan / geändert haben. Wenn Sie keine Überwachung haben, haben Sie ohnehin keine Sicherheit.
BEARBEITET
Dies ist eine Liste der allgemeinen Oracle-Anforderungen für Standalone-Installationen (nicht geclusterte Installationen).
Kernel-Parameter
Möglicherweise gibt es etwa 15-20 sysctl-Parameter. Für jeden von ihnen liefert Oracle einen empfohlenen Wert oder eine Gleichung. Für einige Parameter kann sich die empfohlene Gleichung im Laufe der Zeit ändern (aync io), oder in einigen Fällen hat Oracle mehr als eine Gleichung für denselben Parameter bereitgestellt.
Es liegt an Ihnen, zu entscheiden, wie viel Zeit Sie "verschwenden", bis das Problem behoben ist. Ich wollte nur darauf hinweisen, dass die starke Rollentrennung in manchen Fällen sehr teuer sein kann. Anstatt die "Sicherheit" zu erhöhen, konzentrieren Sie sich auf die Reduzierung von Risiken und Gefahren. Welches ist nicht das gleiche. Mit Tools wie ttysnoop oder Shell Spy können Sie die gesamte SSH-Sitzung "aufzeichnen" und so die Unbestreitbarkeit gewährleisten. Dies kann besser als sudo dienen.
quelle
vxdisk resize
Befehl ausführen zu lassen, als mitten in der Nacht E-Mail-Ping-Pong zu spielen. Es geht mehr um Vertrauen und Auditing als um "Sicherheit".Ich bin ein Oracle-DBA und meine Antwort lautet: Normalerweise benötigt der DBA keinen Root-Zugriff. Aber ein RAC DBA? Auf jeden Fall benötigt er den Root-Zugriff, um CRS, Housekeeping und alles zu verwalten.
quelle
Diese Frage stammt aus einer Zeit, in der Systeme viel einfacher waren und Betriebssystem- und Datenbankprozesse separat definiert und identifizierbar waren. Die Aufgaben und Verantwortlichkeiten der Systemadministration und der Datenbankadministration waren sehr unterschiedlich. In den heutigen IT-Umgebungen und insbesondere auf den heutigen Datenbankservern überschneiden sich diese Aufgaben und Verantwortlichkeiten häufig. Der Systemadministrator ist bemüht, den Root-Zugriff in Bezug auf das Risikomanagement zu beschränken.
Angesichts der heutigen Anforderungen nach „hoher Verfügbarkeit“ und „sofortiger Behebung“ von Problemen mit unseren RAC-Datenbanksystemen dienen die Systemadministratoren und Datenbankadministratoren ihren funktionalen Geschäftsgemeinschaften als Team. Es sollten keine Bedenken hinsichtlich "Vertrauen" bestehen, da beide Parteien ein begründetes Interesse daran haben, die RAC-Datenbankserver fast immer online zu halten. Bedenken Sie, dass der DBA bereits als Datenbankadministrator Shell-Zugriff hat (mit oder ohne Befehle, die er über sudo ausführen kann; mit oder ohne Chroot), sodass der DBA offensichtlich ein "vertrauenswürdiger" Agent ist. In Wirklichkeit sollte die Frage lauten: "Warum benötigt der Oracle-DBA keinen Zugriff?"
Der heutige Datenbankadministrator hat zusätzliche Aufgaben für den Datenbankserver übernommen, bei dem ein Datenbankserver Mitglied eines Oracle Real Application Cluster (RAC) ist und mithilfe von Oracle Automatic Storage Management (ASMLIB) gemeinsam genutzten Speicher für die RAC-Datenbank (en) bereitstellt. Die Verwaltung des RAC und des ASM durch den DBA entlastet den bereits überarbeiteten Systemadministrator. Dies sollte ein willkommener Beitrag für die STS-Gruppe / das STS-Team sein.
Und, wie ibre5043 sagte, "... starke Rollentrennung kann in einigen Fällen sehr teuer sein. Statt die" Sicherheit "zu erhöhen, konzentrieren Sie sich auf die Reduzierung von Risiken und Gefahren. Das ist nicht dasselbe. Tools wie ttysnoop oder Shell Spy ermöglichen es Ihnen um die gesamte SSH-Sitzung "aufzuzeichnen", gewähren sie Unbestreitbarkeit. Dies kann besser als Sudo dienen. " Sie sollten auch fragen, wer die SSAs überwacht.
quelle
Wenn die Server Oracle Grid Infrastructure-Software wie CRS, RAC oder Oracle Restart verwenden, werden viele der kritischen Datenbankdienste als Root ausgeführt und viele der kritischen Datenbankkonfigurationsdateien gehören Root. Es ist ein inhärentes Konstruktionsmerkmal der Software. Wenn dies einen Verstoß gegen Ihre Richtlinien darstellt, müssen die Richtlinien überarbeitet werden.
Der DBA benötigt Root-Zugriff, um diese Funktionen zu verwalten. Theoretisch könnten Sie ihn nach einer Liste der Befehle fragen, die er voraussichtlich in Sudo ausführen wird, aber die Antwort ist eine sehr lange Liste. Schauen Sie sich einfach $ GRID_HOME / bin an, um eine Liste aller Binärdateien zu erhalten, die der DBA möglicherweise regelmäßig verwendet. Wenn sie Patching-Aktivitäten ausführen (was sie auch sein sollten), könnte die Liste sogar noch länger werden.
quelle
Ich habe gerade eine ähnliche Frage gestellt. Eigentlich ist der Grund, warum ein Sysadmin das Root-Privileg nicht vergeben möchte, der der Verantwortung und Verantwortlichkeit, denke ich.
Aber wenn dies die Ursache ist, sollte der DBA auch der einzige Systemadministrator sein. Und der Grund ist einfach. Wenn eine Trennung von Verantwortlichkeit und Verantwortung erforderlich ist, kann der Sysadmin IMMER auch der DBA sein. Er kann die Identität des Oracle-Kontos annehmen, er kann die Datenbank als SYSDBA eingeben und alles tun, ohne das SYS- oder SYSTEM-Kennwort zu benötigen.
Wenn aus Gründen der Verantwortlichkeit und Verantwortlichkeit eine Trennung von Systemadministratoren und Datenbankadministratoren erforderlich ist, liegt meiner Meinung nach die einzige logische Ursache darin, dass der Server auch vom Datenbankadministrator und nicht vom Systemadministrator verwaltet werden sollte. Der Server und die Datenbank sollten als Ganzes in der Verantwortung des DBA liegen, der auch über einige Kenntnisse in der Systemadministration verfügen sollte.
Wenn der Server für mehr als das Hosten der Datenbank verwendet wird und eine getrennte Verantwortung und Rechenschaftspflicht erforderlich ist, bedeutet dies Probleme. Aber wenn der Server nur zum Hosten der Datenbank verwendet wird, sehe ich keinen Grund, warum der DBA nicht über das Root-Privileg verfügen sollte, wenn man die unzähligen Fälle berücksichtigt, die er auch benötigen würde.
Persönlich würde ich die Frage andersherum stellen. Warum sollte der Sysadmin das Root-Privileg auf einem dedizierten Datenbankserver haben? Tatsächlich wäre seine Spezialität in weitaus weniger Fällen erforderlich als die des DBA (mit dem Root-Privileg).
quelle
Für die Installation und das Patchen von Oracle Grids ist Root-Zugriff erforderlich. Daran führt kein Weg vorbei. Wenn es eine Möglichkeit gäbe, einem DBA für solche Anforderungen temporären Root-Zugriff zu gewähren, wäre dies ideal.
quelle