2016-04-24 2 views
2

in Oracle, wenn ich Benutzer/schema FOO erschaffe dann Bündel von Tabellen auf Schema FOO ErstellenGrant-Auswahl auf einer Tabelle/Sicht auf das Schema

Gibt es eine Möglichkeit, Benutzer FOO Zuschuss wählen auf alle Tabellen geben kann/Ansichten vor Tabellen/Sichten erstellt? Oder muss ich es erst tun, nachdem die Tabellen/Ansichten erstellt wurden?

CREATE USER FOO .... 
/
*** GRANT SELECT TO USER FOO ON ANY TABLE/VIEW CREATED 
/
CREATE TABLE 1 ... 
/
CREATE TABLE ... ... 
/
CREATE TABLE N  ... 
/
+1

Der Benutzer 'foo' kann immer Objekte im' foo' Schema abfragen. "foo" besitzt diese Objekte, so dass 'foo' sie ablegen, ändern, abfragen, etc. Kannst du vielleicht meinen, dass ein Benutzer' bar' Zugriff auf alle Objekte im 'foo' Schema haben soll? –

+0

Guter Fang - das habe ich verpasst. – mathguy

Antwort

2

nicht genau, was Sie wollen, aber Sie können mit dynamischen SQL-select (oder andere) Privileg für alle Tabellen eines Schemas geben:

begin 
    for i in (
      select 'grant select on ' || table_name || ' to USER2' as stm 
      from dba_tables 
      where owner = 'USER1' 
      ) 
    loop 
    execute immediate i.stm; 
    end loop; 
end; 

Dies ist slighty anders aus, was Sie gefragt, da Sie können dies nur ausführen, nachdem Sie alle Tabellen erstellt haben. Es ist jedoch ein einfacher Teil von SQL, den Sie nach jeder Tabellenerstellung ausführen können, um sicherzustellen, dass Ihr Benutzer vollständig geschützt ist.

1

Was Sie verlangen, ist eine . Heute existiert so etwas nicht. Es gibt eine offene Anfrage/Benutzer Umfrage zu diesem Thema auf OTN (Oracle Technology Network), die derzeit aktiv ist:

https://community.oracle.com/ideas/2333

In der gleichen Stellen Sie Ideen für eine Abhilfe finden werden, wenn nötig.

+0

Ich erinnere mich, dass es einen Trick gab, um eine Rolle zu erstellen und den Benutzer der Rolle zuzuweisen und dann die Tabellen zu erstellen, aber ich erinnere mich nicht, – user648026

+0

Sie können eine Rolle erstellen, um Ihr Leben zu vereinfachen, aber Sie können immer noch nicht gewähren Wählen Sie ein Schema für die Rolle aus. Sie gewähren nach wie vor Tabellenzugriff, jedoch nur für eine Rolle und nicht für einzelne Benutzer. – mathguy

Verwandte Themen