ایجاد دیتابیس Encrypt شده در لایه سیستم عامل

در اوراکل نسخه 21c و 23ai می توانیم در زمان ایجاد دیتابیس از طریق ابزار dbca، قابلیت TDE را برای همه tablespaceها{اعم از سیستمی و غیرسیستمی} فعال کنیم تا دیتابیس از همان ابتدا به صورت کامل در لایه سیستم عامل Encrypt شود.

برای استفاده از TDE، گزینه های زیر همراه با اجرای DBCA قابل تنظیم هستند:

[-'configureTDE' <true | false> Specify true to configure TDE wallet]
        [-'encryptPDBTablespaces' <Specify ALL to encrypt all Tablespaces or A comma separated list of name:value pairs with tablespace encryption to true/false. For example SYSTEM:true,SYSAUX:false>]
        [-'encryptTablespaces' <Specify ALL to encrypt all Tablespaces or A comma separated list of name:value pairs with tablespace encryption to true/false. For example SYSTEM:true,SYSAUX:false>]
        [-'pdbTDEPassword' <Specify password for PDB TDE wallet>]
        [-'primaryDBTdeWallet' <Specify the location for TDE wallet of primary database>]
        [-'sourcePdbTDEPassword' <Specify password for source PDB TDE wallet and it is used only in creation of PDB from existing PDB which has TDE wallet>]
        [-'sourceTdeWalletPassword' <Specify password for source database TDE wallet>]
        [-'tdeAlgorithm' <Specify the TDE Algorithm Type.>]
        [-'tdeWalletLoginType' <Specify the TDE Wallet Login Type, PASSWORD | AUTO_LOGIN  | LOCAL_AUTO_LOGIN. Default is PASSWORD for SI and AUTO_LOGIN is default for RAC]
        [-'tdeWalletModeForPDB' <Type of keystore, either UNITED or ISOLATED. Default is UNITED>]
        [-'tdeWalletPassword' <Specify password for TDE wallet>]
        [-'tdeWalletPathInTarFile' <value>]
        [-'tdeWalletRoot' <Specify the location for TDE wallet root init parameter>]

گزینه configureTDE نقش مهمتری را در این زمینه ایفا می کند و برای استفاده از TDE باید آن را به TRUE تنظیم کنیم پارامترهای مهم دیگری هم در این زمینه قابل تنظیم هستند نظیر:

tdeWalletRoot: مسیر فایل wallet از طریق این پارامتر می شود.

tdeWalletPassword:پسورد wallet از طریق این پارامتر قابل تنظیم است.

encryptPDBTablespaces: اگر قصد داریم tablespaceهای PDBها هم به صورت Encrypt ایجاد شوند، باید این پارامتر را به ALL تنظیم کنیم.

encryptTablespaces: با تنظیم این پارامتر به ALLء، tablespaceهای سیستمی هم encrypt خواهند شد.

قبل از اجرای dbca، باید پوشه ای که قرار است wallet در آن ایجاد شود را بسازیم.

mkdir -p /oracle23ai/TDE/wallet

در ادامه با دستور dbca دیتابیسی را به صورت Encrypt(در لایه OS) ایجاد می کنیم:

[oracle@OEL8 ~]$ dbca -silent -createDatabase -templateName FREE_Database.dbc -gdbName IraniDB -adminManaged -sid FREE -sysPassword SDFSwrtmmm___125 -systemPassword SDFSwrtmmm___125 -createAsContainerDatabase TRUE -useLocalUndoForPDBs TRUE -characterSet AR8MSWIN1256 -emConfiguration NONE -storageType FS -datafileDestination /oracle23ai/oradata -databaseConfigType SINGLE -configureTDE TRUE -tdeWalletRoot /oracle23ai/TDE/wallet -tdeWalletLoginType AUTO_LOGIN -TdeWalletPassword 'Heshmattolah_MohaJerani'  -encryptPDBTablespaces ALL -encryptTablespaces ALL   -numberOfPDBs 1 -pdbName babol
Prepare for db operation
8% complete
Copying database files
9% complete
31% complete
Creating and starting Oracle instance
32% complete
33% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
53% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /opt/oracle/cfgtoollogs/dbca/IraniDB.
Database Information:
Global Database Name:IraniDB
System Identifier(SID):FREE
Look at the log file "/opt/oracle/cfgtoollogs/dbca/IraniDB/IraniDB.log" for further details.

بعد از اجرای dbca خواهیم دید فایل wallet در مسیر مورد نظر ایجاد شده است:

[oracle@OEL8 tde]$ ll
-rw------- 1 oracle oinstall 2600 Jul 24 22:21 cwallet_2024072417510890.sso
-rw------- 1 oracle oinstall 3864 Jul 24 22:25 cwallet_2024072417551956.sso
-rw------- 1 oracle oinstall 5128 Jul 24 22:25 cwallet.sso
-rw------- 1 oracle oinstall 2555 Jul 24 22:21 ewallet_2024072417510890.p12
-rw------- 1 oracle oinstall 3819 Jul 24 22:25 ewallet_2024072417551956.p12
-rw------- 1 oracle oinstall 5083 Jul 24 22:25 ewallet.p12

تمام tablespaceها در CDB$ROOT و PDB به صورت Encrypt ایجاد شده اند:

sqlplus "/as sysdba"                                                       
SQL*Plus: Release 23.0.0.0.0 - Production on Wed Jul 24 22:02:04 2024
Version 23.4.0.24.05
Copyright (c) 1982, 2024, Oracle.  All rights reserved.
Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.4.0.24.05
SQL> select TABLESPACE_NAME, ENCRYPTED, con_id from cdb_tablespaces order by con_id, TABLESPACE_NAME;
TABLESPACE_NAME                ENC     CON_ID
------------------------------ --- ----------
SYSAUX                         YES          1
SYSTEM                         YES          1
TEMP                           YES          1
UNDOTBS1                       YES          1
USERS                          YES          1
SYSAUX                         YES          3
SYSTEM                         YES          3
TEMP                           YES          3
UNDOTBS1                       YES          3
USERS                          YES          3
10 rows selected.

الگوریتم پیش فرض AES256 است:

SQL> SELECT TS#,ENCRYPTIONALG,ENCRYPTEDTS FROM V$ENCRYPTED_TABLESPACES;
       TS# ENCRYPT ENC
---------- ------- ---
         0 AES256  YES
         1 AES256  YES
         4 AES256  YES
         2 AES256  YES
         0 AES256  YES
         1 AES256  YES
         2 AES256  YES
         6 AES256  YES
         3 AES256  YES
         3 AES256  YES

10 rows selected.

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:vahidusefzadeh@gmail.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *