Haben Sie sich als Datenbank-Administrator schon einmal eine der folgenden Fragen gestellt?
Wie kann ich die Anzahl an gleichzeitigen Sessions eines Benutzers einschränken?
Wie kann ich verhindern, dass die Benutzer unbegrenzt lange eine Verbindung zur Datenbank haben (, aber nichts mehr tun)?
Gibt es eine Möglichkeit die erforderliche Arbeitslast durch Benutzerzugriffe zu limitieren?
Wie kann ich die Laufzeit der Benutzer-Passwörter begrenzen?
Kann ich die Oracle-Passwörter sicherer machen?
Falls Sie eine oder mehrere Fragen mit ja beantworten können und bislang noch keine wirkliche Antwort dafür gefunden haben, dann haben wir etwas interessantes für Sie.
Der folgende Beitrag erläutert die Bedeutung und Verwaltung von Benutzer-Profilen und verdeutlicht die einzelnen Parameter, die darüber gesetzt werden können.
DER PROFIL-BEGRIFF
Mit einem Benutzer-Profil können Sie die Passwortverwaltung und die Ressourcennutzung der Benutzer steuern bzw. limitieren. Dafür stehen insgesamt 16 Parameter zur Verfügung, die innerhalb einer CREATE PROFILE oder ALTER PROFILE-Anweisung definiert werden können. In jeder Oracle Datenbank gibt es ein Profil namens DEFAULT, dass standardmäßig jedem Benutzer zugewiesen wird.
Eine Übersicht über die vorhandenen Profile und deren Begrenzungen erhalten Sie über:
SELECT * FROM dba_profiles
ORDER BY profile, resource_type, resource_name;
- Standard-Ausgabe zu 11g
PROFILE RESOURCE_NAME RESOURCE LIMIT
-------------------- -------------------------------- -------- ----------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
DEFAULT PASSWORD_GRACE_TIME PASSWORD 7
DEFAULT PASSWORD_LIFE_TIME PASSWORD 180
DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
MONITORING_PROFILE COMPOSITE_LIMIT KERNEL DEFAULT
MONITORING_PROFILE CONNECT_TIME KERNEL DEFAULT
MONITORING_PROFILE CPU_PER_CALL KERNEL DEFAULT
MONITORING_PROFILE CPU_PER_SESSION KERNEL DEFAULT
MONITORING_PROFILE IDLE_TIME KERNEL DEFAULT
MONITORING_PROFILE LOGICAL_READS_PER_CALL KERNEL DEFAULT
MONITORING_PROFILE LOGICAL_READS_PER_SESSION KERNEL DEFAULT
MONITORING_PROFILE PRIVATE_SGA KERNEL DEFAULT
MONITORING_PROFILE SESSIONS_PER_USER KERNEL DEFAULT
MONITORING_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD
UNLIMITED
MONITORING_PROFILE PASSWORD_GRACE_TIME PASSWORD DEFAULT
MONITORING_PROFILE PASSWORD_LIFE_TIME PASSWORD DEFAULT
MONITORING_PROFILE PASSWORD_LOCK_TIME PASSWORD DEFAULT
MONITORING_PROFILE PASSWORD_REUSE_MAX PASSWORD DEFAULT
MONITORING_PROFILE PASSWORD_REUSE_TIME PASSWORD DEFAULT
MONITORING_PROFILE PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
WKSYS_PROF COMPOSITE_LIMIT KERNEL DEFAULT
WKSYS_PROF CONNECT_TIME KERNEL DEFAULT
WKSYS_PROF CPU_PER_CALL KERNEL DEFAULT
WKSYS_PROF CPU_PER_SESSION KERNEL DEFAULT
WKSYS_PROF IDLE_TIME KERNEL DEFAULT
WKSYS_PROF LOGICAL_READS_PER_CALL KERNEL DEFAULT
WKSYS_PROF LOGICAL_READS_PER_SESSION KERNEL DEFAULT
WKSYS_PROF PRIVATE_SGA KERNEL DEFAULT
WKSYS_PROF SESSIONS_PER_USER KERNEL DEFAULT
WKSYS_PROF FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
WKSYS_PROF PASSWORD_GRACE_TIME PASSWORD DEFAULT
WKSYS_PROF PASSWORD_LIFE_TIME PASSWORD DEFAULT
WKSYS_PROF PASSWORD_LOCK_TIME PASSWORD DEFAULT
WKSYS_PROF PASSWORD_REUSE_MAX PASSWORD DEFAULT
WKSYS_PROF PASSWORD_REUSE_TIME PASSWORD DEFAULT
WKSYS_PROF PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT
Ab Version 10g wird bei einer Standard-Installation ein zweites Profil mit dem Namen MONITORING_PROFILE erzeugt und dem Benutzer DBSNMP zugewiesen.
Ab Version 11g kommt noch das Profil WKSYS_PROF dazu, das der Benutzer WKSYS erhält.
In Version 23c sind noch mehr Einträge dazugekommen:
C##ALL_USER_PROFILE COMPOSITE_LIMIT KERNEL
C##ALL_USER_PROFILE CONNECT_TIME KERNEL
C##ALL_USER_PROFILE CPU_PER_CALL KERNEL
C##ALL_USER_PROFILE CPU_PER_SESSION KERNEL
C##ALL_USER_PROFILE IDLE_TIME KERNEL 3000
C##ALL_USER_PROFILE LOGICAL_READS_PER_CALL KERNEL
C##ALL_USER_PROFILE LOGICAL_READS_PER_SESSION KERNEL
C##ALL_USER_PROFILE PRIVATE_SGA KERNEL
C##ALL_USER_PROFILE SESSIONS_PER_USER KERNEL
C##ALL_USER_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD
C##ALL_USER_PROFILE INACTIVE_ACCOUNT_TIME PASSWORD
C##ALL_USER_PROFILE PASSWORD_GRACE_TIME PASSWORD 0
C##ALL_USER_PROFILE PASSWORD_LIFE_TIME PASSWORD
C##ALL_USER_PROFILE PASSWORD_LOCK_TIME PASSWORD
C##ALL_USER_PROFILE PASSWORD_REUSE_MAX PASSWORD
C##ALL_USER_PROFILE PASSWORD_REUSE_TIME PASSWORD
C##ALL_USER_PROFILE PASSWORD_ROLLOVER_TIME PASSWORD
C##ALL_USER_PROFILE PASSWORD_VERIFY_FUNCTION PASSWORD FROM ROOT
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10
DEFAULT INACTIVE_ACCOUNT_TIME PASSWORD 365
DEFAULT PASSWORD_GRACE_TIME PASSWORD 7
DEFAULT PASSWORD_LIFE_TIME PASSWORD 3650
DEFAULT PASSWORD_LOCK_TIME PASSWORD 1
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT PASSWORD_ROLLOVER_TIME PASSWORD 0
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
ORA_CIS_PROFILE COMPOSITE_LIMIT KERNEL DEFAULT
ORA_CIS_PROFILE CONNECT_TIME KERNEL DEFAULT
ORA_CIS_PROFILE CPU_PER_CALL KERNEL DEFAULT
ORA_CIS_PROFILE CPU_PER_SESSION KERNEL DEFAULT
ORA_CIS_PROFILE IDLE_TIME KERNEL DEFAULT
ORA_CIS_PROFILE LOGICAL_READS_PER_CALL KERNEL DEFAULT
ORA_CIS_PROFILE LOGICAL_READS_PER_SESSION KERNEL DEFAULT
ORA_CIS_PROFILE PRIVATE_SGA KERNEL DEFAULT
ORA_CIS_PROFILE SESSIONS_PER_USER KERNEL 10
ORA_CIS_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD 5
ORA_CIS_PROFILE INACTIVE_ACCOUNT_TIME PASSWORD 120
ORA_CIS_PROFILE PASSWORD_GRACE_TIME PASSWORD 5
ORA_CIS_PROFILE PASSWORD_LIFE_TIME PASSWORD 90
ORA_CIS_PROFILE PASSWORD_LOCK_TIME PASSWORD 1
ORA_CIS_PROFILE PASSWORD_REUSE_MAX PASSWORD 20
ORA_CIS_PROFILE PASSWORD_REUSE_TIME PASSWORD 365
ORA_CIS_PROFILE PASSWORD_ROLLOVER_TIME PASSWORD DEFAULT
ORA_CIS_PROFILE PASSWORD_VERIFY_FUNCTION PASSWORD ORA12C_VERIFY_FUNCTION
ORA_STIG_PROFILE COMPOSITE_LIMIT KERNEL DEFAULT
ORA_STIG_PROFILE CONNECT_TIME KERNEL DEFAULT
ORA_STIG_PROFILE CPU_PER_CALL KERNEL DEFAULT
ORA_STIG_PROFILE CPU_PER_SESSION KERNEL DEFAULT
ORA_STIG_PROFILE IDLE_TIME KERNEL 15
ORA_STIG_PROFILE LOGICAL_READS_PER_CALL KERNEL DEFAULT
ORA_STIG_PROFILE LOGICAL_READS_PER_SESSION KERNEL DEFAULT
ORA_STIG_PROFILE PRIVATE_SGA KERNEL DEFAULT
ORA_STIG_PROFILE SESSIONS_PER_USER KERNEL DEFAULT
ORA_STIG_PROFILE FAILED_LOGIN_ATTEMPTS PASSWORD 3
ORA_STIG_PROFILE INACTIVE_ACCOUNT_TIME PASSWORD 35
ORA_STIG_PROFILE PASSWORD_GRACE_TIME PASSWORD 0
ORA_STIG_PROFILE PASSWORD_LIFE_TIME PASSWORD 35
ORA_STIG_PROFILE PASSWORD_LOCK_TIME PASSWORD UNLIMITED
ORA_STIG_PROFILE PASSWORD_REUSE_MAX PASSWORD 5
Welcher Benutzer welches Profil bekommen hat, ermitteln Sie über:
SELECT username, user_id, profile FROM dba_users;
DI