Oracle PL/SQL Grundkurs

Einen Datenbankbenutzer erzeugen

Testen Sie unsere 1983 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In diesem Video lernen Sie, wie man einen Datenbankbenutzer anlegt und ihn mit entsprechenden Rechten versieht.

Transkript

In diesem Video werden wir uns mit der Benutzerberechtigung von der Oracle-Database auseinandersetzen, denn eine der Besonderheiten der Oracle-Database ist, dass sie hierfür ein besonderes Konzept vorsieht. Ein wichtiger Grundsatz ist hier, dass man mit einem individuellen Benutzer arbeitet. In diesem Training nutzen wir PL/SQL so, wie es der Hersteller empfiehlt, nämlich mit einem eigenen Datenbankbenutzer. Wieso die bisherige Arbeitsweise gefährlich war, wird deutlich, wenn wir uns ansehen, mit welchem Benutzer wir bislang tatsächlich angemeldet waren. Ich werde jetzt wieder SQL+ starten, (Tastengeräusche) und zwar so: '/ as sysdba'. Wenn ich mir ausgeben lasse, über welchen User ich wirklich angemeldet bin, erhalte ich folgende Ausgabe. Ich kann nämlich sagen: 'show user' ... Dann sehen Sie, dass ich als Datenbankbenutzer 'sys' unterwegs bin. Das ist ziemlich riskant. Grundsätzlich ist es so, dass bei der Oracle-Database alle Tabellen als Objekte einem bestimmten Datenbankbenutzer gehören. Auf diese Weise sind auch alle Objekte unter einem Eigentümer gruppiert. Wenn Sie die Oracle-Database kennen, erzähle ich Ihnen hiermit nichts Neues. Für Einsteiger aus anderen Datenbanken ist es aber oft verwunderlich, dass die Oracle-Database hiermit auch das Grundprinzip eines Schemas verwirklicht. Ein Schema ist allgemein ein Bezeichner, unter dem Tabellen, Views usw. gruppiert werden. Eine Unterscheidung zwischen einem Datenbankbenutzer und einem Schema kennt Oracle jedoch nicht. Warum auch? Schließlich handelt es sich bei der Oracle-Database bei dem Datenbankbenutzer um ein Schema, das sich aber zugleich wie ein Benutzer anmelden und Tabellen erstellen kann. Auch die Oracle-Database verwaltet sich selbst auf die gleiche Weise, denn auch dort werden alle Systemdaten in Form von Datenbanktabellen abgelegt, und die gehören alle dem Datenbankbenutzer 'sys'. Deshalb kann man in Unix-Termini auch behaupten, dass 'sys' der Root-User der gesamten Oracle-Database ist oder auch, dass 'sys' allmächtig im Universum seiner Oracle-Database ist. Weil alle Daten, die 'sys' zur Systemverwaltung benötigt, in eigenen Tabellen organisiert sind, darf er auch alles löschen. So wie der Benutzer 'root' in Unix alle Datenträger löschen darf. Daher ist es schon ziemlich gefährlich, wenn ich als 'sys' arbeite. Im Grunde genommen muss ich deshalb einen eigenen Datenbankbenutzer erzeugen, und nur mit diesem Benutzer unter eingeschränkten Berechtigungen weiterarbeiten. Ich erzeuge jetzt einen Datenbankbenutzer namens Alex. Das geht mit folgender Anweisung: 'create user', dann 'alex', 'identified by supergeheim_123'. Mit den Schlüsselwörtern 'identified by' haben wir dem User ein Passwort gegeben. Mit diesem Benutzer können wir jetzt aber noch nicht viel anfangen, denn es ist ihm noch alles untersagt. Er darf sich noch nicht einmal mit der Oracle-Database verbinden. Erst, wenn wir ihm dieses Recht einräumen, wird ihm das gelingen. Das Grundprinzip der Sicherheit bei der Oracle-Database lautet nämlich: "Nichts ist erlaubt, solange es nicht ausdrücklich als Privileg erteilt wird." Unter den Privilegien unterscheidet man zwischen: System- und objektbezogene Privilegien, also denen auf Tabellen, Views, usw. Das Zauberwort zur Bereitstellung eines Privilegs nennt sich 'grant'. Um dem Benutzer Alex etwa das Anmelden zu ermöglichen, könnten wir ihm das Systemprivileg 'grant create session to' erteilen. Auf diese Weise: 'grant create session to alex' Dieser 'Grant' besagt, dass der Benutzer Alex eine Sitzung mit der Oracle-Database erzeugen darf. Erst danach könne man sich als Benutzer 'Alex' anmelden. Außerdem müssten wir dem Benutzer auch das Systemprivileg einräumen, Tabellen anzulegen. Das ginge so: 'grant create table to Alex' Für die Erteilung der Benutzerrechte werden wir aber eine Abkürzung wählen, denn Oracle bietet die Möglichkeit, sogenannte Benutzerrollen zu definieren und einem Benutzer diese Rolle zuzuordnen. Da Oracle die gängigsten drei Rollen bereits vordefiniert hat, sparen wir uns so viel Arbeit. Diese Rollen nennen sich 'connect', 'ressource' und 'dba'. Wir können also anweisen, 'grant connect ressource dba to Alex'. Die Rolle 'connect' ermöglicht das Verbinden, die Rolle 'ressource' erlaubt das Erstellen von Objekten und die Rolle 'dba' gewährt dem Benutzer Alex Systemrechte. Die Rolle 'dba' bietet darüber hinaus auch noch den Vorteil, dass wir nur dann die Rolle von 'sys' einnehmen, wenn wir dies beim Verbinden via 'ssysdba' ausdrücklich anmerken. Somit ist der Benutzer Alex für die Arbeit mit PL/SQL nun perfekt ausgestattet. Mehr Rechte braucht er auch nicht, da ihm alle Objekte, die er erstellt, auch gehören, und er somit ohnehin alle Zugriffsrechte auf seine eigenen Objekte innehat. Mit diesen beiden Kommandos haben wir also einen Datenbankbenutzer erzeugt, über den wir unsere PL/SQL-Programme programmieren und testen können. Wir sind hierbei einer Empfehlung des Herstellers gefolgt, die besagt, dass wir nicht mit dem Systembenutzer 'sys' oder 'system', sondern mit einem individuellen Benutzer arbeiten sollen.

Oracle PL/SQL Grundkurs

Entdecken Sie grundlegende Programmstrukuren, Stored Procedures und Functions in PL/SQL und sehen Sie, wie Sie auf Daten zugreifen können.

3 Std. 58 min (32 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!