TDE (Part II) : Annexe

Script1

Remplacer <table> dans le script ci-dessous par le nom de la table : CRYPT puis et exécuter sous sqlplus le script. Attention ne pas se connecter avec SYS, il n'a pas le droit de créer des tables chiffrées.

Puis recommencer l'opération avec <table>  COL_CRYPT puis COL_SALT_CRYPT et enfin PAS_CRYPT

begin
   for l_id in 1..1000000 loop
   insert into <table>
   values  
   (
      l_id,     
      decode (         
         floor(dbms_random.value(1,22)),
         1, 'Pas trop secret ',
         2, 'public',
         3, 'pour tout le monde',
         4, 'quoi?',
         5, 'hein',
         6, 'donnee qui sert à rien',
         7, 'patati patata',
         8, 'bonjour',
         9, 'PAS SECRET',
         10, 'rgte ghegergfzrgfcrgthsg',
         11, 'Bonsoir',
         12, 'PAS TROP SECRET ',
         13, 'PUBLIC',
         14, 'POUR TOUT LE MONDE',
         15, 'QUOI?',
         16, 'HEIN',
         17, 'DONNEE QUI SERT À RIEN',
         18, 'PATATI PATATA',
         19, 'BONJOUR',
         20, 'PAS SECRET',
         21, 'RGTE GHEGERGFZRGFCRGTHSG',
         22, 'BONSOIR',
             'XXX'
      ),
      decode (        
         floor(dbms_random.value(1,22)),           
         1, 'TROP SECRET',
         2, '54 50 600 454',
         3, 'mot de passe : Trde45seZA%der',
         4, '1 74 255 603 121 13',
         5, 'SECRET',
         6, 'Ultra Secret',
         7, 'NE PAS LIRE',
         8, 'La NSA controle internet',
         9, 'La NSA espionne la DGSE',
         10, 'La NSA decrypte cette colonne',
         11, 'La NSA est coquine',
         12, 'TROP SECRET',
         13, '54 50 600 454',
         14, 'MOT DE PASSE : TRDE45SEZA%DER',
         15, '1 74 255 603 121 13',
         16, 'SECRET',
         17, 'ULTRA SECRET',
         18, 'NE PAS LIRE',
         19, 'LA NSA CONTROLE INTERNET',
         20, 'LA NSA ESPIONNE LA DGSE',
         21, 'LA NSA DECRYPTE CETTE COLONNE',
         22, 'LA NSA EST COQUINE',
             'XXX'
      )
   );
   end loop;
   commit;
end;
/
commit;

 

Script 2

-- envoi_le_bourrier.sql  (pouvez pas comprendre, faut être passer par France Télévision Publicité fin de années 90 pour comprendre!)
alter system archive log current;

SET SERVEROUTPUT ON SIZE UNLIMITED
DECLARE
  l_loops  NUMBER := 100000;
  l_data   VARCHAR2(50);
  l_start  NUMBER;
BEGIN
  EXECUTE IMMEDIATE 'TRUNCATE TABLE simple_table';
 
  l_start := DBMS_UTILITY.get_time;
  FOR i IN 1 .. l_loops LOOP
    INSERT INTO simple_table (id, data)
    VALUES (i, 'Data for ' || i);
  END LOOP;
  DBMS_OUTPUT.put_line('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   simple_table
    WHERE  id = i;
  END LOOP;
  DBMS_OUTPUT.put_line('Select  : ' || (DBMS_UTILITY.get_time - l_start));

END;
/
select sum(bytes)/1024/1024 from dba_segments where segment_name='SIMPLE_TABLE';