Warum nicht Oracle denke, mein Benutzer hat den "Create Session" - Privileg, wenn ich versuche zu verbinden?

Ich habe eine Rolle in meinem Oracle 11g-Datenbank " TestUserRole, der schließlich mehr Privilegien, aber derzeit hat nur die Create Session Privileg. Ich habe zugewiesen, die Rolle zu einem Benutzer, TestUser. Es ist Ihre einzige Rolle.

Habe ich diese wie folgt:

CREATE ROLE TestUserRole IDENTIFIED BY somepassword;
GRANT Create Session TO TestUserRole;
CREATE USER TestUser IDENTIFIED BY somepassword;
GRANT TestUserRole TO TestUser;

Wenn ich versuche die Verbindung zu der Datenbank, erhalte ich:

ORA-01045: user TESTUSER fehlt CREATE SESSION Privileg; Anmeldung verweigert

Habe ich überprüft (glaube ich), dass die Benutzer und Rolle setup erfolgreich. Wenn ich die Abfrage

select * from dba_role_privs where grantee = 'TESTUSER'

Bekomme ich

| Grantee  | Granted_Role | Admin_Option | Default_Role |
---------------------------------------------------------
| TESTUSER | TESTUSERROLE | NO           | YES          |

Dann, wenn ich die Abfrage

select * from role_sys_privs where role = 'TESTUSERROLE'

Bekomme ich

| Role         | Privilege      | Admin_Option |
------------------------------------------------
| TESTUSERROLE | CREATE SESSION | NO           |

So scheint es, dass ich den Benutzer erstellt haben und die Rolle erfolgreich, hat der Benutzer die Rolle, und die Rolle hat die create session-Berechtigung. Doch wenn ich mich einloggen will, Oracle sagt mir, dass der Benutzer nicht über das Create Session-Berechtigung. Wohin gehe ich falsch? Muss ich weisen Sie diese Berechtigung direkt an den Benutzer, anstatt eine Rolle?

InformationsquelleAutor Sterno | 2014-04-10

Schreibe einen Kommentar