it-swarm.com.de

Erteilen Sie die Erstellungsberechtigung für ein bestimmtes Schema in Oracle 11g

Ich habe zwei Benutzer A und B. Ich möchte B die Berechtigung zum Erstellen, Löschen usw. aller Tabellen im Schema von A erteilen. Soweit ich sehen kann, kann ich B vollen Zugriff auf alle Schemata gewähren, die nicht spezifisch sind. Ist das richtig?

7
Michael-O

Sie haben Recht, dass es keine Möglichkeit gibt, einem Benutzer Berechtigungen zum Erstellen/Löschen/usw. für ein gesamtes Schema zu erteilen. Ich schlage vor, Sie prüfen Proxy-Authentifizierung . Dies beinhaltet im Wesentlichen das Ändern von Benutzer A, um Benutzer B als A zuzulassen:

ALTER USER A GRANT CONNECT THROUGH B;

Dann verwendet die Verbindung die Authentifizierung von Benutzer B, erhält jedoch die Berechtigungen von Benutzer A.

connect B[A]/[email protected]

Diese Frage wurde etwas von meiner spezifischeren Frage abgedeckt hier .


Hinweis zu Rollen: Rollen eignen sich gut, um einem anderen Benutzer Objektberechtigungen zu erteilen, da die Berechtigungen an ein bestimmtes Objekt gebunden sind. Während Rollen Systemberechtigungen gewähren können, gelten sie entweder für das eigene Schema des Benutzers oder für die gesamte Datenbank und können daher nicht für ein anderes Schema gelten. Beispielsweise könnte dem Benutzer B CREATE TABLE Gewährt werden, mit dem er Tabellen in einem eigenen Schema erstellen kann, oder CREATE ANY TABLE, Mit dem er Tabellen in einem beliebigen Schema erstellen kann. Diese Berechtigungen können direkt oder über eine Rolle erteilt werden, erstere erlauben jedoch keine Erstellungsberechtigungen im A-Schema. Letzteres würde, würde aber auch das Erstellen von Berechtigungen in jedem Schema einschließlich sys ermöglichen, was ein Sicherheitsrisiko darstellen würde.

11
Leigh Riffel

Erstellen Sie einfach eine Prozedur im Zielschema, die EXECUTE_IMMEDIATE zum Erstellen von Tabellen umfasst (suchen Sie nach anderen DDLs !!). Gewähren Sie dann das Quellschema-Privileg, um es für die Prozedur auszuführen. Dies sollte den Trick ohne Sicherheitsbedenken tun.

0
blantomat