セキュリティを高めるために、マテリアライズド・ビューを暗号化できます。たとえば、基本となるテーブルで暗号化されていたデータがマテリアライズド・ビューに含まれる場合、そのマテリアライズド・ビューも暗号化する状況も考えられます。マテリアライズド・ビューを暗号化するには、データベースでテーブルの暗号化をあらかじめ有効にしておく必要があります。データベースの作成時に指定した暗号化アルゴリズムとキーを使用して、マテリアライズド・ビューを暗号化します。テーブル暗号化が有効であるかどうかなど、暗号化設定がデータベースで有効であることを確認するには、次のように DB_PROPERTY 関数を使用して Encryption データベース・プロパティの値を取得します。
SELECT DB_PROPERTY( 'Encryption' ); |
テーブルの暗号化と同様に、マテリアライズド・ビューを暗号化するとパフォーマンスに影響がある可能性があります。データベース・サーバがビューから取得したデータを復号化する必要があるためです。
ビューの所有者として、または DBA 権限のあるユーザとして、データベースに接続します。
左ウィンドウ枠で、[ビュー] をダブルクリックします。
マテリアライズド・ビューを右クリックして、[プロパティ] を選択します。
[その他] タブをクリックします。
[マテリアライズド・ビューのデータは暗号化済み] チェック・ボックスをオンにします。
[OK] をクリックします。
DBA 権限のあるユーザとして、またはマテリアライズド・ビューの所有者として、データベースに接続します。
ENCRYPTED 句を使用して ALTER MATERIALIZED VIEW 文を実行します。
次の文は、マテリアライズド・ビュー EmployeeConfid44 を作成し、初期化して、暗号化します。この文が動作するためには、暗号化されたテーブルを許可するようにデータベースが設定されている必要があります。
CREATE MATERIALIZED VIEW EmployeeConfid44 AS SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID, Departments.DepartmentName, Departments.DepartmentHeadID FROM Employees, Departments WHERE Employees.DepartmentID=Departments.DepartmentID; REFRESH MATERIALIZED VIEW EmployeeConfid44; ALTER MATERIALIZED VIEW GROUPO.EmployeeConfid44 ENCRYPTED; |
この例を実行し終わったら、作成したマテリアライズド・ビューを削除してください。そうしないと、他の例を試すときに、基本となるテーブル Employees および Departments に対するスキーマ変更ができなくなります。有効化されている従属マテリアライズド・ビューを持つテーブルのスキーマは変更できません。マテリアライズド・ビューの削除を参照してください。
ビューの所有者として、または DBA 権限のあるユーザとして、データベースに接続します。
左ウィンドウ枠で、[ビュー] をダブルクリックします。
マテリアライズド・ビューを右クリックして、[プロパティ] を選択します。
[その他] タブをクリックします。
[マテリアライズド・ビューのデータは暗号化済み] チェック・ボックスをオフにします。
[OK] をクリックします。
DBA 権限のあるユーザとして、またはマテリアライズド・ビューの所有者として、データベースに接続します。
NOT ENCRYPTED 句を使用して ALTER MATERIALIZED VIEW 文を実行します。
次の文は、マテリアライズド・ビュー EmployeeConfid44 を復号化します。
ALTER MATERIALIZED VIEW GROUPO.EmployeeConfid44 NOT ENCRYPTED; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |