Datenbank Berechtigungen für SQL Tuning mit SQL Developer

Damit man den SQL Developer für SQL Tuning optimal nutzen kann, braucht man einiges an Zugriffsrechten. Möchte der Datenbankadministrator nur die wirklich benötigten Rechte vergeben, ist das etwas aufwändiger.

Die nötigen Berechtigungen sind von mehreren Faktoren abhängig:

  • Oracle Datenbank Edition (SE2 oder EE)
  • Lizenz für Oracle Diagnostic Pack
  • CDB oder nonCDB Datenbank
  • SQL Developer Version (22.2.1.234)

Sinnvollerweise vergibt ein DBA die Berechtigungen nicht direkt an die Benutzer, sondern an eine Rolle, die dann den Benutzer, die die Rechte benötigen, zugewiesen werden kann.

Alle Oracle Datenbank Editionen

Für alle Datenbank Editionen und ohne weitere Oracle Lizenzen kann man folge Berechtigungen vergeben:

CREATE ROLE SQL_TUNING;

/* Empfohlene Mindestrechte */
grant select on v_$session to SQL_TUNING;
grant select on v_$session_longops to SQL_TUNING;
grant select on v_$process to SQL_TUNING;

grant select on v_$sql to SQL_TUNING;
grant select on v_$sqlarea to SQL_TUNING;
grant select on v_$sql_bind_capture to SQL_TUNING;
grant select on v_$sql_plan to SQL_TUNING;
grant select on v_$sql_hint to SQL_TUNING;

grant execute on DBMS_XPLAN to SQL_TUNING;

/* Empfohlene erweiterte Berechtigungen */
grant select on v_$sql_reoptimization_hints to SQL_TUNING;
grant select on V_$sys_time_model to SQL_TUNING;
grant select on V_$segment_statistics  to SQL_TUNING;

/* SQL Developer fuer Autotrace und Execution Plan */
grant select on v_$sql_plan_statistics_all to SQL_TUNING;
grant select on v_$statname to SQL_TUNING;
grant select on v_$mystat to SQL_TUNING;

/* SQLPLUS AUTOTRACE zuseatzlich zu SQL Developer */
grant select on v_$sesstat to SQL_TUNING;

grant SQL_TUNING to <username>;

Damit kann ein Entwickler alle für manuelles SQL Tuning benötigte Informationen aus der Datenbank auslesen.

Oracle Datenbank Enterprise Edition und zusätzlich die Diagnostic Pack Lizenz

Wenn man auch die Diagnostic Pack Funktionalität nutzen darf (lizenzpflichtig!), braucht es noch eine Reihe von weiteren Berechtigungen. Da Oracle den SQL Developer immer wieder erweitert, können in Zukunft auch weitere Berechtigungen nötig sein. Mit Oracle 19c (19.19) sowie SQL Developer 22.2.1.234 sind folgende zusätzliche GRANTS nötig:

/* AWR-Reports mit SQL Developer erzeugen */
GRANT SELECT ON SYS.V_$DATABASE TO SQL_TUNING;
GRANT SELECT ON SYS.GV_$DATABASE TO SQL_TUNING;
GRANT SELECT ON SYS.V_$INSTANCE TO SQL_TUNING;
GRANT SELECT ON SYS.GV_$INSTANCE TO SQL_TUNING;
GRANT SELECT ON SYS.gv_$PARAMETER TO SQL_TUNING;
GRANT EXECUTE ON SYS.DBMS_WORKLOAD_REPOSITORY TO SQL_TUNING;

GRANT SELECT ON SYS.DBA_HIST_DATABASE_INSTANCE TO SQL_TUNING;
GRANT SELECT ON SYS.DBA_HIST_SNAPSHOT TO SQL_TUNING;
GRANT SELECT ON SYS.dba_hist_wr_control TO SQL_TUNING;
GRANT SELECT ON SYS.dba_hist_baseline TO SQL_TUNING;

GRANT SELECT ON SYS.awr_pdb_database_instance TO SQL_TUNING;
GRANT SELECT ON SYS.awr_pdb_wr_control TO SQL_TUNING;
GRANT SELECT ON SYS.awr_pdb_SNAPSHOT TO SQL_TUNING;
GRANT SELECT ON SYS.awr_pdb_baseline TO SQL_TUNING;
GRANT SELECT ON SYS.v_$pdbs TO SQL_TUNING;

/* Zusaetzlich SQL Report Viewer */
GRANT SELECT ON SYS.DBA_HIST_ACTIVE_SESS_HISTORY TO SQL_TUNING;
GRANT SELECT ON SYS.DBA_HIST_SQLTEXT TO SQL_TUNING;

GRANT SELECT ON SYS.AWR_PDB_ACTIVE_SESS_HISTORY TO SQL_TUNING;
GRANT SELECT ON SYS.AWR_PDB_SQLTEXT TO SQL_TUNING;

/* Zusaetzlich Baselines */
GRANT SELECT ON SYS.DBA_HIST_BASELINE_DETAILS TO SQL_TUNING;
GRANT SELECT ON SYS.DBA_HIST_BASELINE_TEMPLATE TO SQL_TUNING;

GRANT SELECT ON SYS.AWR_PDB_BASELINE_DETAILS TO SQL_TUNING;
GRANT SELECT ON SYS.AWR_PDB_BASELINE_TEMPLATE TO SQL_TUNING;

/* Zusaetzlich ADDM */
GRANT SELECT ON SYS.DBA_ADVISOR_TASKS TO SQL_TUNING;
GRANT SELECT ON SYS.dba_addm_findings TO SQL_TUNING;
GRANT SELECT ON SYS.dba_addm_tasks TO SQL_TUNING;
GRANT SELECT ON SYS.dba_addm_instances TO SQL_TUNING;
GRANT SELECT ON SYS.dba_advisor_parameters_proj TO SQL_TUNING;
GRANT SELECT ON SYS.dba_advisor_findings TO SQL_TUNING;
GRANT SELECT ON SYS.dba_scheduler_jobs TO SQL_TUNING;

Mit diesen Berechtigungen kann man somit AWR-Reports, ADDM Berichte, ASH-Report, etc. aus dem Umfang des Diagnostic Pack nutzen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.