2009-08-14 3 views
0

Ich muss nur Tabelle von einem Benutzer zu jedem Benutzer unter der gleichen DB erstellen. denk 3 Schemata.Enthält Oracle DBA-Berechtigung die Rolle "CREATE ANY TABLE"?

Schema_1, Schema_2 und Schema_3.

Schema 1 hatte DBA-Privileg.

Ist es möglich, in Schema_2 oder Schema_3 von Schema_1 ????

oder wir müssen diese Rolle "CREATE ANY TABLE" auch ??

Antwort

1

sollten die DBA-Rolle dieses Privileg in einer typischen Installation haben - Sie andere Rollen sehen/Benutzer, die diese haben von:

wählen grantee aus DBA_SYS_PRIVS wo Privileg = 'ANY CREATE TABLE'

0

Wie @dpbirdy angibt, enthalten die Oracle-Standardrechte für die DBA-Rolle die Berechtigung "CREATE ANY TABLE". Sie können dies mit der folgenden Abfrage überprüfen (und alle Systemprivilegien dieser Rolle gewährt siehe auch):

SELECT * FROM role_sys_privs WHERE role = 'DBA' ORDER BY PRIVILEGE; 

Die Oracle Data Dictionary ist dein Freund.

0

Ok lässt einige Dinge deutlich machen

  1. CREATE ANY TABLE ist Systemberechtigung nicht Rolle
  2. Sie einfach alle Benutzer DBA-Berechtigungen erteilen kann durch GRANT DBA TO <USER_NAME> WITH ADMIN OPTION; Schreiben aber sagen, dass wird schema_1 können Tabelle erstellen jeder Benutzer als er CREATE ANY TABLE Privileg

    create table hr.dbaMade_tab (id number, name varchar2(20) );

    haben 0

    Wenn Sie Schema_1 gewährt CREATE ANY TABLE dann können Schema_2 und Schema_3 Tabelle zu einer beliebigen Tabelle erstellen. Bewilligen Sie keine DBA-Rolle für irgendjemanden. Legen Sie eine neue Rolle an und vergeben Sie die erforderlichen Berechtigungen, und erteilen Sie diese Rolle anderen Benutzern. In Ihrem Fall schema_2 und schema_3. Ich hoffe, das hilft.