Zuschüsse durch die Rolle verändert in Oracle 11g?
Ich versuchte zu gewähren CONNECT
einem Benutzer eine Rolle:
CREATE ROLE my_role IDENTIFIED BY "passwd";
GRANT CONNECT TO my_role;
CREATE USER my_user IDENTIFIED BY "passwd";
GRANT my_role TO my_user;
Wenn ich versuche diese in 10g es funktioniert gut, während in 11g login abgelehnt wird:
ORA-01045:
user MY_USER lacks CREATE SESSION privilege; logon denied
Gewährung CREATE SESSION
von der Rolle, macht keinen Unterschied.
Ich kann nur nach login direkt Gewährung CONNECT
(oder CREATE SESSION
) an den Benutzer.
Hat Oracle änderte sich dieses Verhalten, oder mache ich etwas falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie haben vielleicht Weg bekommen mit einem Sicherheits - "feature" in 10g. Die Art, wie ich Lesen Sie die SQL-Referenz-und Sicherheits-Guide für 11g zeigt, dass Passwort-aktivierten Rollen erfordern die Verwendung
SET ROLE my_role IDENTIFIED BY passwd
bevor irgendwelche Rechte erteilt, die Rolle wirksam sind.Können Sie nicht
CREATE SESSION
bis Sie die Rolle, und Sie können nicht die Rolle, bis SieSET ROLE
.Catch-22.
Oracle Knowledge Base [ID 745407.1] erklärt dies.
Den DEFAULT-Klausel in der:
Benutzer ändern Standard-Rollen ;
gibt die Rollen, die standardmäßig erteilt der Benutzer bei der Anmeldung. Diese Klausel kann nur Rollen, die gewährt wurden dem Benutzer direkt mit einer GRANT-Anweisung, oder Rollen erstellt, indem der Benutzer mit dem Privileg CREATE ROLE. Sie können die STANDARD-ROLLE-Klausel zu aktivieren:
Rollen nicht, die dem Benutzer erteilt
Rollen erteilt durch andere Rollen
Rollen verwaltet durch einen externen Dienst (wie z.B. das Betriebssystem) oder von der Oracle Internet Directory
Rollen, die mit einem Kennwort authentifiziert.
Rollen implementiert werden als secure application roles.
Für Passwort authentifiziert Rollen, die änderung wurde eingeführt in version 10.2.0.5 und 11.1.0.7.
Für die sichere Anwendung von Rollen, die änderung wurde eingeführt, in den Oracle-Versionen 10.2.0.4 und 11.1.0.7
Diese änderungen gelten für alle zukünftigen Versionen. Die oben genannten Beschränkungen werden eingeführt in die Zukunft-Dokumentation.
Kann man leicht drehen Sie das Passwort aktiviert-Rollen standard-Rollen von der das Skript ausführt, die sich ergeben aus:
wählen Sie "ändern Rolle" ||Rolle||' nicht identifiziert;' from dba_roles, wo password_required='YES' und der Rolle, die nicht in (select Rolle von dba_application_roles);
Aktivieren von Standard-Rollen ("gewährt", um einen Benutzer als Standard), die sind auch Passwort-geschützte geändert in Oracle 10g version 10.2.0.5 (zumindest unser Exemplar). In Version 10.2.0.5, eine Passwort geschützte Rolle nicht mehr geworden ist standardmäßig aktiviert. Es musste sein, speziell angemacht mit dem entsprechenden Passwort.
War dies nicht dokumentiert, soweit wir das sagen könnte. Aber wenn unsere Systeme wurden aktualisiert von 10.2.0.4 auf 10.2.0.5, diese Veränderung brach mehrere unserer Systeme, und wir hatten zu erstellen, die parallelen nicht geschützt Rollen für unsere Funktions-accounts, die nicht über einen Mechanismus zu aktivieren, Standard-Rollen. Wir haben im Grunde erstellt old_role_batch, ohne Passwort, sowie eine Kopie old_role whish war Passwort geschützt.