tech_memo / Oracle / Encryption


tech_memo/ORACLE

Oracle Encryption

WALLET Password

  • orapassword

WALLETの定義

  • racserver1,racserver2サーバにて、gridユーザでsqlnet.oraにwalletの生成場所を記入
    • vi /u01/app/11.2.0/grid/network/admin/sqlnet.ora
      NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
      
      ADR_BASE = /u01/app/grid 
      
      ENCRYPTION_WALLET_LOCATION=
       (SOURCE=(METHOD=FILE)(METHOD_DATA=
         (DIRECTORY=$ORACLE_BASE/admin/wallet)))
      
      ENCRYPTION_WALLET_LOCATION=
       (SOURCE=(METHOD=FILE)(METHOD_DATA=
         (DIRECTORY=$ORACLE_BASE/admin/rac/wallet)))
      
      ENCRYPTION_WALLET_LOCATION=
       (SOURCE=(METHOD=FILE)(METHOD_DATA=
         (DIRECTORY=$ORACLE_BASE/admin/)))
  • 記入後はOracle再起動が必要かも

wallet作成

  • wallet directoryの作成(racserver1, racserver2両方で実行)
    [oracle@racserver1 ~]$ mkdir $ORACLE_BASE/admin/rac/wallet
  • racserver1のoracleユーザでsqlplusでwalletを作成
    SQL> alter system set encryption key authenticated by "orapassword";
    Sytem altered.
  • racserver1でwallet status 確認 [#v1bca4fc]
    SQL> select * from v$encryption_wallet;
    
    WRL_TYPE             WRL_PARAMETER                            STATUS
    -------------------- ---------------------------------------- ------------------
    file                 /u01/app/oracle/admin/rac/wallet         OPEN
  • racserver1で作成したwalletをracserver2にscp
    [oracle@racserver1 ~]$ scp /u01/app/oracle/admin/rac/wallet/ewallet.p12  racserver2:/u01/app/oracle/admin/rac/wallet
    ewallet.p12                                                                                                          100% 1573     1.5KB/s   00:00
  • racserver2のwallet status確認
    WRL_TYPE             WRL_PARAMETER                                      STATUS
    -------------------- -------------------------------------------------- ------------------
    file                 /u01/app/oracle/admin/rac/wallet                   OPEN
  • test tablespace 作成
    CREATE TABLESPACE MYAPP_TEST
    DATAFILE '+DATA' SIZE 128K
    AUTOEXTEND ON NEXT 64K
    ENCRYPTION USING 'AES256'
    DEFAULT STORAGE(ENCRYPT);
  • test tablespace status
    SQL> select TABLESPACE_NAME, ENCRYPTED from dba_tablespaces where  tablespace_name = 'MYAPP_TEST';
    
    TABLESPACE_NAME                ENC
    ------------------------------ ---
    MYAPP_TEST                     YES

Listener経由のWALLET

  • なぜかlisnter経由でDBに接続した場合、walletのパス定義が違っていた。(Encryptionのtablespaceをlisnter経由で作成しようとしたたらエラーになった)
    Creating tablespaces MYAPP_BIOMETRICS_LOB_DATA_001
    old   3:     '&&myapp_diskgroup' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    new   3:     '+DATA' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    old   4:        '&&myapp_diskgroup' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    new   4:        '+DATA' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    old   5:        '&&myapp_diskgroup' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    new   5:        '+DATA' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    old   6:        '&&myapp_diskgroup' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    new   6:        '+DATA' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    old   7:        '&&myapp_diskgroup' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    new   7:        '+DATA' SIZE 30G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED,
    old   8:        '&&myapp_diskgroup' SIZE 20G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED
    new   8:        '+DATA' SIZE 20G  REUSE  AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED
    CREATE  TABLESPACE MYAPP_BIOMETRICS_LOB_DATA_001
    *
    ERROR at line 1:
    ORA-28365: wallet is not open
  • 前回作成したときはこのようなことはなかったが、ひとまず、指定されたパスにwalletをディレクトリ作成+コピーすることでencryptionのテーブルスペースは作成できた。
    WRL_TYPE             WRL_PARAMETER                                      STATUS
    -------------------- -------------------------------------------------- ------------------
    file                 /u01/app/oracle/product/11.2.0/dbhome_1/admin/rac/ OPEN
                         wallet
    [oracle@racserver2 ~]$ mkdir  -p /u01/app/oracle/product/11.2.0/dbhome_1/admin/rac/wallet
    [oracle@racserver2 ~]$ cp /u01/app/oracle/admin/rac/wallet/ewallet.p12 /u01/app/oracle/product/11.2.0/dbhome_1/admin/rac/wallet/

作成済みWALLETのOPEN

ALTER SYSTEM SET WALLET OPEN IDENTIFIED BY "orapassword";

その他