Emrah UYSAL 1 TABLESPACE ENCRYPTION ORACLE 11G

Benzer belgeler
ORACLE TRANSPORTABLE TABLESPACE KULLANIMI

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Oracle da kullanılan veri tipleri:

DĐNAMĐK ve STATĐK SQL KULLANMANIN PERFORMANSA ETKĐSĐ

VERİ TABANI YÖNETİM SİSTEMLERİ I

TROUG. RMAN (Recovery Manager) [Oracle 11g Veritabanları için Yüksek Erişilebilirliğe Giriş Serisi] Ergem PEKER

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

Oracle 11gR2 Üzerine Dataguard Kurulumu Türkçe

ASM (Automatic Storage Manager) 11 Mayıs 2009

Unutulmuş Özellikler: Oracle Veritabanına Yaptığınız Yatırımı Sonuna Kadar Kullanın

Örnek: HAFTA12B isimli bir kullanıcı tanımlayalım. Bu kullanıcıya gerekli yetkileri verelim.

MOBİL UYGULAMA GELİŞTİRME

UTL_FILE PERFORMANSI

ORACLE DATAFILE RECOVER (KURTARMA) TESTLERĐ

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

PostgreSQL ve PL/pgSQL

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

Veri Tabanı Hafta Dersi

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

PostgreSQL ve PL/pgSQL

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

SQL Stored Procedure

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

KULLANICI TANIMLI FONKSİYONLAR (Devam)

Emrah UYSAL 1

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

ORACLE VERĐTABANINDA TABLO ve INDEX SIKIŞTIRMA

KULLANICI TANIMLI FONKSİYONLAR (Devam)

1 ORACLE 11G DATABASE SERVER LE

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

Liquibase ile Veri Tabanı Değişiklik Yönetimi

JDBC kütüphanesi, her görev için genellikle veritabanı kullanımı ile ilişkili API leri içerir:

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

ORACLE PARAMETRE DOSYALARI ( PFILE & SPFILE )

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

YAPISAL SORGULAMA DİLİ (SQL)

KULLANICI TANIMLI FONKSİYONLAR

VERİTABANI Veritabanı Yönetimi

PostgreSQL Veritabanı Sunucusu. 8.2 neler getiriyor?

ORACLE INDEX SIKIŞTIRMA TEKNĐKLERĐ

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

Creating Tables in Oracle

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

SQL SERVER DATABASE FILE LARINI VE TEMPDB FILE LARINI TAŞIMA OPERASYONU

Exadata Üzerinde Veri Sıkıştırma Yöntemleri

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

ORACLE DATABASE 11G R2 KURULUMU

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

3. Analytic Workspace Manager ile Oracle OLAP Küpü Tasarımı

VERİ TABANI YÖNETİM SİSTEMLERİ I

Veri Tabanı ve Yönetimi

SQL e Giriş. Uzm. Murat YAZICI

VERİ TABANI YÖNETİM SİSTEMLERİ-II

Data Programming SQL Language

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

Veritabanına Uygulanması

W3af ile Web Uygulama Güvenlik Testleri

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Bellek Yönetimiyle İlgili Notlar ORACLE BELLEK YÖNETĐMĐYLE ĐLGĐLĐ NOTLAR

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

Güvenli ve Sürdürülebilir Veri. Samed YAYLA KoçSistem Satış Yöneticisi

Model: Soyutlama. Kavramsallaştırma (Genelleme) (Spesifikleştirme) Özelleştirme. Veri (Data) Yapı (Structure)

Startup ve Shutdown Yöntemleri. ORACLE STARTUP ve SHUTDOWN YÖNTEMLERİ

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Veritabanı Yönetim Sistemleri (Başarım Eniyileme Performance Tuning)

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

MT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)

Emrah UYSAL 1

EROL AKGÜL

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

Ders Tanıtım Sunumu. Database Managegement II. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

HB1002: ORACLE 10G VERĐTABANI PL/SQL ile PROGRAMLAMA (32 saat)

MySqlConnection connection; MySqlCommand command; MySqlDataReader reader; MySqlDataAdapter adapter; DataTable table;

BÖLÜM- 11: BÜYÜK VERİ KÜMELERİ

Oracle'dan PostgreSQL'e geçiş

ORACLE 11G DIRECT NFS

Büyük veriye genel bakış, mimari ve çözümler

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

C#.Net & Linq (Language Integrated Query)

SQL TRIGGERS (Tetikleyiciler)

Oracle 12c Flex Cluster - Flex ASM

T-SQL NEDİR? Microsoft T-SQL Transact-SQL

! Türkiye nin ilk SQL Platformu SQLTURKIYE.com çok yakında profesyonel ekibiyle bilgi paylaşımına başlayacaktır

LOG SHIPPING Yusuf KAHVECİ Senior Database

BLM401 Mobil Cihazlar için ANDROID İşletim Sistemi. SQLite Veritabanı. BLM401 Dr.Refik SAMET

FreeBSD üzerinde PostgreSQL Temel Kurulum ve Yapılandırması

Laboratuvar 6 TABLOLAR VE KISITLAR

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ

1. Araçların tüm bilgilerini ve bağlı oldukları kiralama noktasının adres ve telefonunu içeren tam listesi:

Transkript:

TABLESPACE ENCRYPTION ORACLE 11G Oracle 11G nin yeni gelen özelliklerinden biride tablespace seviyesinde encryption yapılabilmesidir.tabiiki yine bunu yapabilmek için wallet ın aktif ve açık olması gerekmektedir.wallet ın nasıl açılacağına kısaca yine bakarsak, Wallet I şu şekilde aktive edeceğiz.ilk olarak owm dediğimiz,oracle wallet manager tool unu açıp gerekli çalışmayı yapacağız. Emrah UYSAL www.emrahuysal.com 1

Şifre olarak Oracle321 giriyorum,istenirse farklı bir şifre girilebilir. Emrah UYSAL www.emrahuysal.com 2

Emrah UYSAL www.emrahuysal.com 3

Emrah UYSAL www.emrahuysal.com 4

Emrah UYSAL www.emrahuysal.com 5

Daha sonra sqlnet.ora dosyamıza aşağıdaki bilgileri giriyoruz, ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=$OR ACLE_BASE/admin/WALLET))) ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=$OR ACLE_BASE/admin/EDUCATE/WALLET ))) Emrah UYSAL www.emrahuysal.com 6

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=$OR ACLE_BASE/admin))) ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u0 1/app11g/oracle/product/11.2.0/db_1/owm/wallets/oracle))) Encryption key i aktif ediyoruz bunu yapabilmek için şifre olarak Oracle321 girmiştik tekrar o şifreyi deniyoruz. SQL> alter system set encryption key authenticated by "Oracle321"; System altered. Şimdi aşağıdaki komutu kullanarak wallet ı açmamız gerek,böylece wallet artık aktif oluyor. [oracle@rac1 ~]$ sqlplus '/as sysdba' SQL> ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "Oracle321"; System altered. Artık encryption kullanarak tablespace ve tablo yaratabiliriz. SQL> CREATE TABLESPACE encrypted_ts DATAFILE '/u01/app/oracle/oradata/educate/encrypted_ts01.dbf' SIZE 128K AUTOEXTEND ON NEXT 64K ENCRYPTION USING 'AES256' DEFAULT STORAGE(ENCRYPT); Tablespace created. SQL> ALTER USER test QUOTA UNLIMITED ON encrypted_ts; User altered. DBA_TABLESPACES kullanılarak hangi tablespace in encrypted hangisinin değil görebiliriz. SQL> SELECT tablespace_name, encrypted FROM dba_tablespaces; TABLESPACE_NAME ENC ------------------------------ --- SYSTEM UNDOTBS1 SYSAUX TEMP USERS UNDOTBS2 EXAMPLE FBDA_TBS FBDA_TBS2 TBSSGA MYTEMP TRANSPORT_TEST_TS_1 TEST_TS TEST_TS2 TEST_TS3 ENCRYPTED_TS YES Emrah UYSAL www.emrahuysal.com 7

Encrypted olmayan bir tablespace i encrypted hale dönüştüremeyiz.ancak yeni bir tablespace yaratıp verilerini "ALTER TABLE... MOVE..." or "CREATE TABLE... AS SELECT * FROM...". yöntemiyle taşıyabiliriz. Örnek olarak yukarıda yarattığımız encrypted tablespace i kullanan bir tablo / index yaratıp güzel bir test yapabiliriz.ama unutulmamalıdırki wallet open olmalıdır. SQL> CONN test/test SQL> CREATE TABLE ets_test2 ( id NUMBER(10), data VARCHAR2(50) ) TABLESPACE encrypted_ts; SQL> CREATE INDEX ets_test_idx2 ON ets_test2(data) TABLESPACE encrypted_ts; SQL> INSERT INTO ets_test2 (id, data) VALUES (1, 'This is a secret!'); SQL> COMMIT; Cache te duran bilgilerinde flush yapıyoruzki cache tende erişilme olmasın. [oracle@rac1 ~]$ sqlplus '/as sysdba' SQL> ALTER SYSTEM FLUSH BUFFER_CACHE; Şimdi bu kadar güvenliği aldıktan sonra biri datafile ı yada ilgili tabloyu içeren export u herhangi bir hex editörünle açsa bile istediği bilgiye ulaşamıyacaktır. İstenirse tablo nun kolonları bazındada encryption yapabilmek mümkündür. SQL> CREATE TABLE tde_test ( id NUMBER(10), data VARCHAR2(50) ENCRYPT ) TABLESPACE tde_test; Veri girerkende klasik olarak verilerimizi giriyoruz, SQL> INSERT INTO tde_test (id, data) VALUES (1, 'This is a secret!'); SQL> COMMIT; Performans olarak normal kolon kullanan bir tablo ile encrypted kolon kullanan bir tablo arasındaki farkları görebiliriz.2 adet tablo yaratıp insert durumuna bakalım, SQL> CONN test/test SQL> CREATE TABLE tde_test_1 ( id NUMBER(10), data VARCHAR2(50) ); SQL> CREATE TABLE tde_test_2 ( id NUMBER(10), data VARCHAR2(50) ENCRYPT ); SQL> SET SERVEROUTPUT ON SIZE UNLIMITED Emrah UYSAL www.emrahuysal.com 8

DECLARE l_loops NUMBER := 1000; l_data VARCHAR2(50); l_start NUMBER; BEGIN EXECUTE IMMEDIATE 'TRUNCATE TABLE tde_test_1'; EXECUTE IMMEDIATE 'TRUNCATE TABLE tde_test_2'; l_start := DBMS_UTILITY.get_time; FOR i IN 1.. l_loops LOOP INSERT INTO tde_test_1 (id, data) VALUES (i, 'Data for ' i); END LOOP; DBMS_OUTPUT.put_line('Normal Insert : ' (DBMS_UTILITY.get_time - l_start)); l_start := DBMS_UTILITY.get_time; FOR i IN 1.. l_loops LOOP INSERT INTO tde_test_2 (id, data) VALUES (i, 'Data for ' i); END LOOP; DBMS_OUTPUT.put_line('Encrypted Insert: ' (DBMS_UTILITY.get_time - l_start)); l_start := DBMS_UTILITY.get_time; FOR i IN 1.. l_loops LOOP SELECT data INTO l_data FROM tde_test_1 WHERE id = i; END LOOP; DBMS_OUTPUT.put_line('Normal Query : ' (DBMS_UTILITY.get_time - l_start)); l_start := DBMS_UTILITY.get_time; FOR i IN 1.. l_loops LOOP SELECT data INTO l_data FROM tde_test_2 WHERE id = i; END LOOP; DBMS_OUTPUT.put_line('Decrypted Query : ' (DBMS_UTILITY.get_time - l_start)); END; / Encrypted Insert: 32 Normal Query : 5 Decrypted Query : 9 PL/SQL procedure successfully completed. Kolon bazında encryption işlemi external tablolarda da kullanılabilir.bir örnek olarak deneme yapalım. [oracle@rac1 ~]$ sqlplus '/as sysdba' SQL> create or replace directory ext_dir as '/u01/app11g'; SQL> GRANT READ, WRITE ON DIRECTORY ext_dir TO test; SQL> CONN test/test Emrah UYSAL www.emrahuysal.com 9

SQL> CREATE TABLE tde_test_1_ext ( id, data ENCRYPT IDENTIFIED BY "mypassword" ) ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY ext_dir location ('tde_test_1_ext.txt') ) AS SELECT id, data FROM tde_test_1; Tablo oluştumu diye bakacak olursak, [root@rac1 ~]# cd /u01/app11g/ [root@rac1 app11g]# ls -la total 116 drwxr-xr-x 6 oracle oinstall 4096 Oct 7 15:50. drwxrwxrwx 6 oracle oinstall 4096 Aug 10 15:38.. drwxr-xr-x 2 oracle oinstall 4096 Sep 9 18:18 backup drwxr-xr-x 8 oracle oinstall 4096 Aug 18 2009 database drwx------ 2 oracle oinstall 16384 Aug 10 15:12 lost+found drwxr-xr-x 9 oracle oinstall 4096 Aug 14 12:02 oracle -rw-r--r-- 1 oracle oinstall 41 Oct 7 15:50 TDE_TEST_1_EXT_5685.log -rw-r----- 1 oracle oinstall 73728 Oct 7 15:50 tde_test_1_ext.txt [root@rac1 app11g]# vi tde_test_1_ext.txt Tabloyu vi editörünle açsak bile herhangi birşey göremiyeceğiz. Encrypted kolonlar ile ilgili bilgileri dba_encrypted_columns view ından görebiliriz. SQL> SET LINESIZE 100 SQL> COLUMN owner FORMAT A15 SQL> COLUMN tble_name FORMAT A15 SQL> COLUMN column_name FORMAT A15 SQL> SELECT * FROM dba_encrypted_columns; OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_ALG SAL --------------- ------------------------------ ---------------------------- TEST SECUREFILE_TAB CLOB_DATA AES 192 bits key YES TEST ENCRYPT_TAB CLOB_DATA AES 192 bits key YES TEST TDE_TEST_1 DATA AES 192 bits key YES TEST TDE_TEST_2 DATA AES 192 bits key YES TEST TDE_TEST_1_EXT DATA AES 192 bits key YES Herhangi bir kolonu encrypted etmek içinde aşağıdaki komutu kullanabiliriz. SQL> ALTER TABLE employees MODIFY (emp_ssn VARCHAR2(9) ENCRYPT); Verilerin export metoduyla aktarımı sırasında hatalar alınabilir.örneğin Exp tool u kullanarak bir tablomuzu export etmek istedim, [oracle@rac1 ~]$ exp test/test file=/u01/app11g/en.dmp tables=tde_test Export: Release 11.2.0.1.0 - Production on Thu Oct 7 17:07:52 2010 Emrah UYSAL www.emrahuysal.com 10

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Export done in US7ASCII character set and AL16UTF16 NCHAR character set server uses WE8ISO8859P9 character set (possible charset conversion) About to export specified tables via Conventional Path... EXP-00107: Feature (COLUMN ENCRYPTION) of column DATA in table TEST.TDE_TEST is not supported. The table will not be exported. Export terminated successfully with warnings. Görüldüğü gibi verimizi export edemedik,peki bir datapump I deneyelim. [oracle@rac1 ~]$ expdp test/test dumpfile=dump.dump directory=ext_dir tables=tde_test Export: Release 11.2.0.1.0 - Production on Fri Oct 8 13:49:15 2010 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Starting "TEST"."SYS_EXPORT_TABLE_01": test/******** dumpfile=dump.dump directory=ext_dir tables=tde_test Estimate in progress using BLOCKS method... Processing object type TABLE_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 64 KB Processing object type TABLE_EXPORT/TABLE/TABLE.. exported "TEST"."TDE_TEST" 5.476 KB 1 rows ORA-39173: Encrypted data has been stored unencrypted in dump file set. Master table "TEST"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded *************************************************************************** *** Dump file set for TEST.SYS_EXPORT_TABLE_01 is: /u01/app11g/dump.dump Job "TEST"."SYS_EXPORT_TABLE_01" completed with 1 error(s) at 13:49:21 Data pump ile tablomuzun exportunu alabildik.şimdi bu alınan export başka bir şemaya atalım.ama öncelikle bir kullanıcı yaratalım. SQL> create user test2 identified by test2; User created. SQL> grant connect,resource,create table,unlimited tablespace to test2; Grant succeeded. SQL> grant read,write on directory ext_dir to test2; Grant succeeded. Emrah UYSAL www.emrahuysal.com 11

SQL> exit [oracle@rac1 app11g]$ impdp test2/test2 directory=ext_dir dumpfile=dumpen.dump REMAP_SCHEMA=test:test2 Import: Release 11.2.0.1.0 - Production on Fri Oct 8 14:24:31 2010 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Master table "TEST2"."SYS_IMPORT_FULL_01" successfully loaded/unloaded Starting "TEST2"."SYS_IMPORT_FULL_01": test2/******** directory=ext_dir dumpfile=dumpen.dump REMAP_SCHEMA=test:test2 Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type TABLE_EXPORT/TABLE/TABLE_DATA.. imported "TEST2"."TDE_TEST" 5.484 KB 1 rows Job "TEST2"."SYS_IMPORT_FULL_01" successfully completed at 14:24:36 [oracle@rac1 ~]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.1.0 Production on Fri Oct 8 13:55:19 2010 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> conn test2/test2 Connected. SQL> select * from TDE_TEST; ID DATA ---------- -------------------------------------------------- 1 This is a secret! Görüldüğü gibi datamızı başarılı olarak import edebildik.eğer bu dosyayı farklı bir veritabanına atmak isteseydik atamıycak ve hata alacaktık wallet nedeniyle.ama export alırken datanın encrypted olarak kesin olarak alınmasını istiyorsak hem export hemde import syntax ına ENCRYPTION_PASSWORD parametresini koymalıyız.örneğin [oracle@rac1 app11g]$ expdp test/test dumpfile=dumpen2.dump directory=ext_dir tables=tde_test ENCRYPTION_PASSWORD=Oracle321 Emrah UYSAL www.emrahuysal.com 12