【11g新特性】Oracle加密表空间
【 11g 新特性】 Oracle 加密表空间 新年新群招募:中国Oracle精英联盟 170513055 群介绍:本群是大家的一个技术分享社区,在这里可以领略大师级的技术讲座,还有机会参加Oracle举办的技术沙龙,与兴趣相投的小伙伴一起笑谈风云起,感悟职场情! 前言 :数据
【11g新特性】Oracle加密表空间
新年新群招募: 中国Oracle精英联盟 170513055
群介绍:本群是大家的一个技术分享社区,在这里可以领略大师级的技术讲座,还有机会参加Oracle举办的技术沙龙,与兴趣相投的小伙伴一起笑谈风云起,感悟职场情!
前言:数据治理领域里面经常会遇到敏感数据,例如我们征信中心的征信数据就是涉密数据,并不是所有的人都可以看到,就算有授权也只能看到指定对象的数据,那么想一想假设这些数据被流失出来会是一个怎样的场景,就像“皇帝新装”这个故事一个,全部搬上银幕被展现出来,还记得前几天12306网站信息被泄露了吗!下面来介绍一个Oracle 11g新特性给大家,此特性可以完全避免上述事件的发生,这就是Oracle11g加密表空间特性。
理论
创建一个加密表空间,作用是只要放在加密表空间中的表,没有wallet钱包中的密钥用户是打不开的,这就可以形成一个保护罩,就算你有权限查询数据也不能看到明文,这就起到了风险保障的作用,只有知道秘钥的管理员才能查看,下面我们来详细讲解。
一 加密表空间与wallet的关系
1.Oracle表空间的加密与解密完全是基于wallet钱包中的密钥进行的。
2.如果wallet是open状态,那么我们可以使用其中的密钥,进行加密与解密处理。
3.如果wallet是close状态,那么我们就拿不到密钥,此时加密表空间是不可用的,例如 查询 修改 创建都不允许
4.唯一删除表是不需要密钥的,wallet是open or close状态都无所谓,直接删除即可
二 TDE(Transparent Data Encryption透明数据加密)使用场景
1.保护敏感数据,禁止未授权的访问,只有打开钱包才能查看数据。
2.防止数据丢失,当加密表空间的数据文件被恶意拷贝走后,如果你没有密钥是无法还原数据的。
3.防止数据被截获,当在网络传输时加密后的信息更安全,即使截获了也无法得知其中内容。
TDE可支持的加密算法种类AES(Advanced Encryption Standard高级加密标准) 是DES的升级版
① AES192 192位密钥加密
② AES128(default) 128位密钥加密
③ AES256 256位密钥加密
④ 3DES168 168位密钥加密 DES(Data Encryption Standard数据加密标准)
AES标准是美国联邦政府采用的一套加密标准,用来替代原先的DES标准。AES属于对称性加密算法(加密与解密使用同一密钥进行),反之非对称性加密算法(加密与解密使用不同密钥进行)例如 RSA标准有公钥与私钥。
三 TDE(Transparent Data Encryption透明数据加密)加密原理
① 先要创建一个“wallet钱包”,这个钱包里面保存着密钥,Oracle就是通过这个密钥对列进行加密和解密的。
② 生成wallet钱包之前先要设定wallet钱包的保存位置
设置wallet钱包位置的文件$ORACLE_HOME/network/admin/sqlnet.ora
[oracle@cafeadmin]$ vim sqlnet.ora 在这个文件中添加如下脚本
encryption_wallet_location=(source=
(method=file)
(method_data=
(directory=/u01/app/oracle/product/11.1.0/db_1/network/admin)))
③ 在wallet里面创建密钥key,创建后自动打开wallet,密码"oracle"不加引号时,后面使用时也不需要加引号
SYS@COFFEE>alter system set encryption key authenticated by"oracle";
或【alter system set encryption key identified by oracle;】
Systemaltered.
说明:authenticated by "oracle" :打开/关闭wallet的认证密码是oracle
如果报错
SYS@COFFEE>alter system set encryption key authenticated by "oracle";
altersystem set encryption key authenticated by "oracle"
*
ERRORat line 1:
ORA-28368: cannot auto-create wallet不能自动创建钱包
在/u01/app/oracle/product/11.1.0/db_1目录下运行sqlplus 登录数据库就可以成功执行
④ 查看一下wallet钱包是否在$ORACLE_HOME/network/admin/目录下生成
[oracle@cafeadmin]$ ll
-rw-r--r--1 oracle dba 1573 Nov 7 03:21 ewallet.p12 这个就是我们刚才生成的wallet钱包,里面有我们创建的密钥(密文形式),打开wallet钱包的认证密码是“oracle”,创建wallet钱包之后密钥就自动在里面了。
⑤ 创建一个加密表空间
SYS@COFFEE>create tablespace encrypted_tbs datafile '/u01/app/oracle/oradata/COFFEE/datafile/test_encrypted01.dbf'size 10m encryption default storage(encrypt);
【CREATE TABLESPACE stablespace DATAFILE '/u01/app/oracle/oradata/COFFEE/datafile/stablespace.dbf'SIZE 10M ENCRYPTION DEFAULT STORAGE(ENCRYPT);】
Tablespacecreated.
创建加密表空间encrypted_tbs,大小10MB,如果不指定加密算法默认使用AES128加密算法密钥长度128位,需open wallet
如果报错
ERRORat line 1:
ORA-28365: wallet is not open 此时报错是没有打开钱包,因为表空间的加密是使用钱包中的密钥进行加密的,如果钱包没打开便无法使用密钥,当然也就创建不了加密表空间。
Open&Closethe Oracle Wallet mothed
alter systemset wallet open identified by"oracle"; 打开钱包
【alter system set wallet close identified by "oracle";】 关闭钱包11gR2
【alter system set wallet close;】 关闭钱包11gR1
查看表空间属性
SYS@COFFEE>select tablespace_name,encrypted from dba_tablespaces;
TABLESPACE_NAME ENC
---------------------------------
SYSTEM NO
SYSAUX NO
UNDOTBS1 NO
TEMP NO
USERS NO
EXAMPLE NO
TBS1 NO
TBS2 NO
TBS3 NO
TBS4 NO
ENCRYPTED_TBS YES 加密状态
实验
在加密表空间上创建一张表encryption_t,这张表上数据全部为加密状态
SYS@COFFEE>create table encrypted_t (x int) tablespace encrypted_tbs;
Tablecreated.
插入一条数据
SYS@COFFEE>insert into encrypted_t values (100);
1 rowcreated.
SYS@COFFEE>commit;
Commitcomplete.
SYS@COFFEE>select * from encrypted_t;
X
--------------------
100
我们关闭wallet看效果
SYS@COFFEE>altersystem set wallet close;
Systemaltered.
当没有打开wallet时不允许开打表
SYS@COFFEE>select * from encrypted_t;在
select* from encrypted_t
*
ERRORat line 1:
ORA-28365: wallet is not open
创建一个新表encryption_t1时,也需要使用wallet钱包中的密钥进行加密
SYS@COFFEE>create table encrypted_t1 (x int) tablespace encrypted_tbs;
createtable encrypted_t1 (x int) tablespace encrypted_tbs
*
ERRORat line 1:
ORA-28365: wallet is not open
唯一例外->删除表,因为删除的过程是不需要密钥key参与,所以wallet是open or close状态都无所谓,直接执行就好
SYS@COFFEE>droptable encryption_t;
Tabledropped.
小结:我们介绍了Oracle加密表空间的原理、场景、实践操作,从理论到实践给朋友们展示了Oralce加密表空间的使用效果,这里切记一定不要忘记wallet的认证密码,否则你将不能查询到表空间内的数据,最好的办法就是把密码记录到一个密码生成器中,定期更新,这样既保证安全性又保证不会忘记。
Leonarding
2015.01.05
天津&winter
分享技术~成就梦想
Blog:www.leonarding.com

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Oracleのソリューションを開くことはできません。1。データベースサービスを開始します。 2。リスナーを開始します。 3.ポートの競合を確認します。 4.環境変数を正しく設定します。 5.ファイアウォールまたはウイルス対策ソフトウェアが接続をブロックしないことを確認してください。 6.サーバーが閉じているかどうかを確認します。 7. RMANを使用して破損したファイルを回復します。 8。TNSサービス名が正しいかどうかを確認します。 9.ネットワーク接続を確認します。 10。Oracleソフトウェアを再インストールします。

Oracle Cursorの閉鎖問題を解決する方法には、次のものが含まれます。 Scopeが終了した後に自動的に閉じるように、for update句のカーソルを宣言します。使用句のカーソルを宣言して、関連するPL/SQL変数が閉じられたときに自動的に閉じるようにします。例外処理を使用して、例外の状況でカーソルが閉じていることを確認します。接続プールを使用して、カーソルを自動的に閉じます。自動送信を無効にし、カーソルの閉鎖を遅延させます。

Oracle Database Pagingは、Rownum Pseudo-ColumnsまたはFetchステートメントを使用して実装しています。RownumPseudo-Columnsは、行番号ごとに結果をフィルタリングするために使用され、複雑なクエリに適しています。 Fetchステートメントは、指定された最初の行を取得するために使用され、単純なクエリに適しています。

Oracleでは、forループループは動的にカーソルを作成できます。手順は次のとおりです。1。カーソルタイプを定義します。 2。ループを作成します。 3.カーソルを動的に作成します。 4。カーソルを実行します。 5。カーソルを閉じます。例:カーソルをサイクルごとに作成して、上位10人の従業員の名前と給与を表示できます。

Oracleデータベースを停止するには、次の手順を実行します。1。データベースに接続します。 2。すぐにシャットダウンします。 3.シャットダウンは完全に中止します。

SQLステートメントは、Oracleの動的SQLを使用して、ランタイム入力に基づいて作成および実行できます。手順には、次のものが含まれます。動的に生成されたSQLステートメントを保存するための空の文字列変数を準備します。 executeを即座に使用するか、ステートメントを準備して、動的なSQLステートメントをコンパイルおよび実行します。バインド変数を使用して、ユーザー入力またはその他の動的値を動的SQLに渡します。実行するか、実行するか、動的SQLステートメントを実行します。

CENTOSシステムにHadoop分散ファイルシステム(HDFS)を構築するには、複数のステップが必要です。この記事では、簡単な構成ガイドを提供します。 1.初期段階でJDKをインストールする準備:すべてのノードにJavadevelopmentKit(JDK)をインストールすると、バージョンはHadoopと互換性がある必要があります。インストールパッケージは、Oracleの公式Webサイトからダウンロードできます。環境変数構成: /etc /プロファイルファイルを編集し、JavaおよびHadoop環境変数を設定して、システムがJDKとHadoopのインストールパスを見つけることができるようにします。 2。セキュリティ構成:SSHパスワードなしログインSSHキーを生成する:各ノードでSSH-KeyGenコマンドを使用する

AWRレポートは、データベースのパフォーマンスとアクティビティスナップショットを表示するレポートです。解釈の手順には、アクティビティスナップショットの日付と時刻の識別が含まれます。アクティビティとリソース消費の概要をご覧ください。セッションのアクティビティを分析して、セッションの種類、リソース消費、待機イベントを見つけます。遅いSQLステートメント、リソース競合、I/Oの問題などの潜在的なパフォーマンスボトルネックを見つけます。待機イベントを表示し、パフォーマンスのためにそれらを特定して解決します。ラッチとメモリの使用パターンを分析して、パフォーマンスの問題を引き起こしているメモリの問題を特定します。
