Oracle DBA’s Weblog

Der Weblog für Oracle-DBAs

Archiv für die Kategorie ‘Vermischtes’

Dies & Das

User-DDL extrahieren

Geschrieben von Kay Liesenfeld - 3. November 2009

Mit den folgenden Abfragen kann man ganz elegant DDL-Scripte eines oder mehrerer User aus der Datenbank extrahieren:

SQL> select dbms_metadata.get_ddl('USER','TEST') from dual;
DBMS_METADATA.GET_DDL('USER','TEST')
--------------------------------------------------------------------------------
   CREATE USER "TEST" IDENTIFIED BY VALUES 'S:BB9F382BFDA8AF92EE4AFC033609CAB510
1E5ED198D7CB942F4E9ABDD038;8CF86D821FB0249F'
      DEFAULT TABLESPACE "USERS"
      TEMPORARY TABLESPACE "TEMP"

SQL> select dbms_metadata.get_granted_ddl('ROLE_GRANT','TEST') from dual;
DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT','TEST')
--------------------------------------------------------------------------------
   GRANT "CONNECT" TO "TEST"
   GRANT "RESOURCE" TO "TEST"

SQL> select dbms_metadata.get_granted_ddl('SYSTEM_GRANT','TEST') from dual;
DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','TEST')
--------------------------------------------------------------------------------
  GRANT UNLIMITED TABLESPACE TO "TEST"
SQL> select dbms_metadata.get_granted_ddl( 'OBJECT_GRANT', 'TEST') from dual;
DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT','TEST')
--------------------------------------------------------------------------------
  GRANT SELECT ON "SYS"."SYS_DUMMY" TO "TEST"

Setzt man alle vier Abfragen untereinander, hat man ein funktionsfähiges Script, um einen bestehenden User zu “klonen”:

select dbms_metadata.get_ddl('USER','TEST') from dual
union
select dbms_metadata.get_granted_ddl('ROLE_GRANT','TEST') from dual
union
select dbms_metadata.get_granted_ddl('SYSTEM_GRANT','TEST') from dual
union
select dbms_metadata.get_granted_ddl( 'OBJECT_GRANT', 'TEST') from dual;

Der Nachteil dieser Vorgehensweise ist die hässliche Eigenart von Oracle, dass, wenn ein Aufruf von GET_GRANTED_DDL keinen Wert zurückliefert (wenn z.B. keine Rechte vergeben sind), folgende Fehlermeldung erscheint:

SQL>  select dbms_metadata.get_granted_ddl( 'OBJECT_GRANT', 'SCOTT' ) from dual;
ERROR:
ORA-31608: Angegebenes Objekt vom Typ OBJECT_GRANT nicht gefunden
ORA-06512: in "SYS.DBMS_SYS_ERROR", Zeile 86
ORA-06512: in "SYS.DBMS_METADATA", Zeile 3915
ORA-06512: in "SYS.DBMS_METADATA", Zeile 5826
ORA-06512: in Zeile 1
Es wurden keine Zeilen ausgewahlt

Wie man das o.g. Script so ergänzen kann, dass diese Meldung vorher abgefangen werden, erfährt man bspw. hier und hier.

Veröffentlicht in HowTo, Vermischtes | Kommentar schreiben »

Oracle Password-Cracker

Geschrieben von Kay Liesenfeld - 2. November 2009

Ein interessantes Projekt, das zeigt, wie schnell Kennwörter unter Oracle geknackt werden können:

http://ops.conus.info/

Der Algorithmus schafft ~60 Millionen potenzielle Passwörter pro Sekunde.

Veröffentlicht in Vermischtes | Kommentar schreiben »

Nachdenklich ;-)

Geschrieben von Roland Schiller - 17. Juni 2008

SOA...what???

Veröffentlicht in Vermischtes | Kommentar schreiben »

Platten-I/O-Geschwindigkeit messen in 11g

Geschrieben von Kay Liesenfeld - 11. Juni 2008

Von unserem geschätzten Kollegen Dr. Peter Alteheld kam heute folgende interessante Info:

Durch Aufruf von DBMS_RESOURCE_MANAGER.CALIBRATE_IO bekommt man in 11g heraus:

  • wieviele single block-Lesezugriffe pro Sekunde von Platte durchgeführt werden können
  • wieviele MByte pro Sekunde von Platte bei 1MByte-Zugriffen geholt werden können
  • die Latenzzeit – also die Zeit zwischen Absenden der Plattenleseanforderung und Rücksenden der Daten – in Millisekunden

So kann man gut überprüfen, wie gut das drunterliegende Plattensystem ist – insbesondere auch bei Vergleichen zwischen Produktions- und Testsystemen. Die Software soll wohl einer Variante des Clarion-Tools entsprechen.

In 10g konnte man innerhalb der Datenbank ja nur per Sammeln von Systemstatistiken solche Daten erheben, die aber dann immer gleich in die Optimizerentscheidungen einflossen.

Veröffentlicht in Tools, Vermischtes | Getaggt mit: , , | 1 Kommentar »

Willkommen beim Oracle DBA Blog!

Geschrieben von Kay Liesenfeld - 6. Juni 2008

Ab heute werden wir, Roland Schiller (OCP) und Kay Liesenfeld (OCP), an dieser Stelle über die kleinen und großen Probleme Herausforderungen berichten, auf die wir bei unserer täglichen Arbeit mit Oracle-Datenbanken treffen.

Sicher wird dabei auch das ein oder andere herauskommen, das für andere interessant ist — dies allein war schon die Intention für diesen Blog.

Allen Lesern wünschen wir viel Erfolg beim Stöbern.

Veröffentlicht in Vermischtes | Getaggt mit: , , , | Kommentar schreiben »

 
Follow

Bekomme jeden neuen Artikel in deinen Posteingang.