====== Oracle ====== ===== Kliens ===== * **Parancssorból:** ''sqlplus'' * **Grafikus felületről:** [[http://www.oracle.com/technetwork/developer-tools/sql-developer/index.html|Oracle SQL Developer]] ===== Verzió lekérdezése ===== SELECT * FROM V$VERSION; BANNER ---------------------------------------------------------------- Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for Linux: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production ===== Export-import ===== * http://workingbinary.com/2012/03/export-and-import-table-data-using-oracle-exp-and-imp/ exp username/password@database tables=table1,table2 file=table_data.dmp imp username/password@database file=table_data.dmp ===== Auto commit ===== set autocommit imm ===== Adat típusok ===== * http://www.techonthenet.com/oracle/datatypes.php ===== Változási napló ===== * http://oracle-base.com/articles/10g/auditing-10gr2.php * http://docs.oracle.com/cd/B19306_01/network.102/b14266/cfgaudit.htm#i1007942 * http://www.dba-oracle.com/t_audit_table_command.htm - Lépjünk be helyileg, ''root''-ként az Oracle szerverre - Lépjünk át az adatbázis felhasználójára: su - oracle - Jelentkezzünk be ''SYSDBA''-ként az SQL-be: sqlplus / as sysdba - Ellenőrizzük le az auditálási beállításokat: SHOW PARAMETER AUDIT NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_file_dest string /home/oracle/app/oracle/admin/ testdb/adump audit_sys_operations boolean TRUE audit_syslog_level string audit_trail string DB unified_audit_sga_queue_size integer 1048576 - Ha az ''audit_trail != DB'', vagy az ''audit_sys_operations != true'', akkor át kell állítanunk: - Paraméterek beállítása: ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE; ALTER SYSTEM SET audit_sys_operations=true SCOPE=spfile; - Beállítások érvénybe léptetése: SHUTDOWN IMMEDIATE STARTUP - Kapcsoljuk be az auditálást a ''test_user'' összes mozzanatára: CONNECT sys/password AS SYSDBA AUDIT ALL BY audit_test BY ACCESS; AUDIT SELECT TABLE, UPDATE TABLE, INSERT TABLE, DELETE TABLE BY audit_test BY ACCESS; AUDIT EXECUTE PROCEDURE BY audit_test BY ACCESS; - Hozzunk létre egy felhasználót, aki eléri majd az audit logokat: CREATE USER audit_test IDENTIFIED BY temp_password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users; GRANT connect TO audit_test; GRANT ALL ON dba_audit_trail TO audit_test; - Audit logok olvasásához: SELECT * FROM ( SELECT "uid", "datetime", "message" FROM ( SELECT to_char(EXTENDED_TIMESTAMP,'YYYYMMDDHH24MiSSFF') AS "uid", extended_timestamp AS "datetime", 'OS_USERNAME=''' || os_username || ''';USERNAME=''' || username || ''';USERHOST=''' || userhost || ''';TERMINAL=''' || terminal || ''';TIMESTAMP=''' || to_char(timestamp, 'YYYY-MM-DD HH24:Mi:SS') || ''';OWNER=''' || owner || ''';OBJ_NAME=''' || obj_name || ''';ACTION=''' || action || ''';ACTION_NAME=''' || action_name || ''';NEW_OWNER=''' || new_owner || ''';NEW_NAME=''' || new_name || ''';OBJ_PRIVILEGE=''' || obj_privilege || ''';SYS_PRIVILEGE=''' || sys_privilege || ''';ADMIN_OPTION=''' || admin_option || ''';GRANTEE=''' || grantee || ''';AUDIT_OPTION=''' || audit_option || ''';SES_ACTIONS=''' || ses_actions || ''';LOGOFF_TIME=''' || logoff_time || ''';LOGOFF_LREAD=''' || logoff_lread || ''';LOGOFF_PREAD=''' || logoff_pread || ''';LOGOFF_LWRITE=''' || logoff_lwrite || ''';LOGOFF_DLOCK=''' || logoff_dlock || ''';COMMENT_TEXT=''' || comment_text || ''';SESSIONID=''' || sessionid || ''';ENTRYID=''' || entryid || ''';STATEMENTID=''' || statementid || ''';RETURNCODE=''' || returncode || ''';PRIV_USED=''' || priv_used || ''';CLIENT_ID=''' || client_id || ''';ECONTEXT_ID=''' || econtext_id || ''';SESSION_CPU=''' || session_cpu || ''';EXTENDED_TIMESTAMP=''' || to_char(extended_timestamp,'YYYY-MM-DD HH24:Mi:SS.FF') ||''';PROXY_SESSIONID=''' || proxy_sessionid || ''';GLOBAL_UID=''' || global_uid || ''';INSTANCE_NUMBER=''' || instance_number || ''';OS_PROCESS=''' || os_process || ''';TRANSACTIONID=''' || transactionid || ''';SCN=''' || scn || ''';SQL_BIND=''' || sql_bind || ''';SQL_TEXT=''' || sql_text || ''';OBJ_EDITION_NAME=''' || obj_edition_name || ''';DBID=''' || dbid || '''' as "message" FROM DBA_AUDIT_TRAIL ) WHERE "uid" > '0' ORDER BY "uid" ) WHERE rownum <= 3000; ===== Szerver telepítés ===== * http://ftp.suse.com/pub/partners/oracle/docs/11gR2_sles11_sp1_install.pdf ===== Problémák ===== * ORA-011033: ORACLE initialization or shutdown in progress http://stackoverflow.com/questions/53676/how-to-resolve-ora-011033-oracle-initialization-or-shutdown-in-progress ===== Felhasználó profiljának lekérdezése ===== - Lépjünk be SYSDBA felhasználóval: sqlplus / as sysdba - ''FOO_USER'' profiljának lekérdezése: select profile from DBA_USERS where username = 'FOO_USER'; ===== Jelszó lejárat kikapcsolása ===== - Lépjünk be SYSDBA felhasználóval: sqlplus / as sysdba - Jelszó lejárat kikapcsolása a ''DEFAULT'' profilban: alter profile DEFAULT limit password_life_time UNLIMITED; ===== Lejárat jelszó reset-elése ===== - Lépjünk be SYSDBA felhasználóval: sqlplus / as sysdba - ''FOO_USER'' jelszavának reset-elése: alter USER FOO_USER IDENTIFIED BY FOO_PASSWORD ACCOUNT UNLOCK;