Announcement

Collapse
No announcement yet.

Fehlende Berechtigungen auf DB-Objekte ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehlende Berechtigungen auf DB-Objekte ermitteln

    Hallo,

    um Berechtigungen "elegant" zu vergeben, führe ich folgenden SQL aus:

    select 'grant select on TABLESPACE.'||table_name||' to USERNAME;' from user_tables;

    Dann muss man nur noch die erzeugten Statements ausführen und das wars.


    Jedoch wäre es super, wenn er mir nur die Objekte anzeigt, auf die der User derzeit noch keine Berechtigungen hat.

    Ich habe dies u.a. so probiert:
    select 'grant select on TABLESPACE.'||table_name||' to USERNAME;' from user_tables, USER_TAB_PRIVS t WHERE t.table_name<>u.table_name;

    Kurz:
    Ich benötige alle Tabellen von "user_tables", die noch nicht in "USER_TAB_PRIVS" vorhanden sind.

    Kann mir bitte jemand auf die Sprünge helfen?
    Würde mich sehr freuen...

    Grüße
    Heidi

  • #2
    Originally posted by heidiweber View Post
    Hallo,



    Kurz:
    Ich benötige alle Tabellen von "user_tables", die noch nicht in "USER_TAB_PRIVS" vorhanden sind.

    Kann mir bitte jemand auf die Sprünge helfen?
    Würde mich sehr freuen...

    Grüße
    Heidi
    Hallo,

    Du kannst folgendes ausführen :
    Code:
    SELECT   *
      FROM   user_tables ut
     WHERE   ut.table_name NOT IN (SELECT   priv.table_name
                                     FROM   user_tab_privs priv);

    Idealerweise solltest du es noch auf den gewünschten OWNER einschränken

    Gruss

    Comment


    • #3
      Für solche Abfragen ist der MINUS-Operator gut geeignet, leicht verständlich und gut lesbar ist:
      Code:
      SELECT table_name FROM user_tables
      MINUS
      SELECT table_name FROM user_tab_privs;

      Comment


      • #4
        Super Sache - Vielen Dank euch beiden.
        Genau das,was ich haben wollte...

        Noch einen schönen Tag
        Grüße
        Heidi

        Comment

        Working...
        X