プライマリ・コンテンツに移動
Oracle® Database Real Application Security管理者および開発者ガイド
12cリリース1 (12.1)
B71274-08
目次へ移動
目次
索引へ移動
索引

前
次

12 Real Application Security HRデモ

セキュリティHRデモの概要

この人事管理(HR)デモは、基本的なReal Application Security (RAS)機能の使用方法を示します。このチュートリアルは、エンドツーエンドのユースケース・シナリオです。PL/SQLスクリプト、Javaプログラム・ソース・ファイルおよびログ・ファイルはReal Application Security HRデモ・ファイルを参照してください。

HRデモは、次の3つのレルムを持つデータ・セキュリティ・ポリシーを適用することでHR.EMPLOYEE表を保護します。

  1. 従業員の固有のレコード・レルム。ACL EMP_ACLはこのレルムを制御し、SALARY列を含むレルムにアクセスするためのEMP_ROLE権限をアプリケーション・ロールに付与します。

  2. IT部門レルム内のすべてのレコード。ACL IT_ACLはこのレルムを制御し、SALARY列を除くレルムにアクセスするためのIT_ROLE権限をアプリケーション・ロールに付与します。

  3. すべての従業員レコード・レルム。ACL HR_ACLはこのレルムを制御し、SALARY列を含むレルムにアクセスするためのHR_ROLE権限をアプリケーション・ロールに付与します。

HRデモは、ポリシーの効果を示すために2人のアプリケーション・ユーザーを定義します。

  • IT部門のアプリケーション・ユーザーであるDAUSTIN。このユーザーはアプリケーション・ロールEMP_ROLEおよびIT_ROLEを持ちます。そのため、前述のレルム#1およびレルム#2にアクセスできます。つまり、IT部門の従業員レコードを表示できますが、自分の給与レコードを除いてSALARY列は表示できません。

  • HR部門のアプリケーション・ユーザーであるSMAVRIS。このユーザーはアプリケーション・ロールEMP_ROLEおよびHR_ROLEを持ちます。そのため、前述のレルム#1およびレルム#3にアクセスできます。つまり、すべての従業員レコードを表示および更新できます。

HRデモ・スクリプトは次のことを示します。

  • Real Application Securityオブジェクト(アプリケーション・ユーザー、アプリケーション・ロール、ACL、セキュリティ・クラスおよびデータ・セキュリティ・ポリシー)の作成方法。

  • データ・セキュリティ・ポリシーを使用して表の行(レルム制約を使用)および列(列制約を使用)を保護する方法。

  • アプリケーション・ユーザーとしてデータベースに直接ログオンする方法(パスワードが必要)、およびReal Application Securityセッションを作成、連結、連結解除および破棄する方法。

  • Real Application Securityセッションでアプリケーション・ロールを有効および無効にする方法。

各スクリプトで実行される処理

セキュリティHRデモのユースケースは、次の一連のPL/SQLスクリプトを実行して、コンポーネントを設定し、デモを実行します。

  • hrdemo_setup.sql: 次の処理を行うことでデモのコンポーネントを設定します。

    • Real Application Security管理者としてデータベース・ユーザーを作成し、Real Application Security管理者として接続してコンポーネントを作成します。

    • データベース・ロールDB_EMPを作成します。

    • ITアプリケーション・ユーザーDAUSTINを作成します。

    • HRアプリケーション・ユーザーSMAVRISを作成します。

    • アプリケーション・ロールEMP_ROLEIT_ROLEおよびHR_ROLEを作成し、これらの各アプリケーション・ロールにデータベース・ロールDB_EMPを付与します。

    • アプリケーション・ロールEMP_ROLEおよびIT_ROLEをアプリケーション・ユーザーDAUSTINに付与します。

    • アプリケーション・ロールEMP_ROLEおよびHR_ROLEをアプリケーション・ユーザーSMAVRISに付与します。

    • VIEW_SALARY権限の作成、および権限のスコープを設定するHRPRIVSセキュリティ・クラスの作成。

    • EMP_ACLIT_ACLおよびHR_ACLの3つのACLを作成します。

      • EMP_ACLは、SALARY列を含む従業員自身のレコードを表示するためのSELECTデータベース権限とVIEW_SALARYアプリケーション権限をEMP_ROLEに付与します。

      • IT_ACLは、IT_ROLEにIT部門内の従業員レコードを表示するためのSELECTデータベース権限のみ付与し、SALARY列へのアクセスに必要なVIEW_SALARY権限は付与しません。

      • HR_ACLは、HR_ROLEにACLのセキュリティ・クラス内のすべての権限を意味するALL権限を付与します。この場合、ALL権限には、すべての従業員のレコードの表示と更新を行うためのSELECTINSERTUPDATEおよびDELETEデータベース権限と、SALARY列を表示するためのVIEW_SALARYアプリケーション権限の付与が含まれます。

    • HRデモは、次の3つのレルムと列制約を持つデータ・セキュリティ・ポリシーEMPLOYEES_DSを作成および適用することで、HR.EMPLOYEE表を保護します。

      • 従業員の固有のレコード・レルム。ACL EMP_ACLはこのレルムを制御し、SALARY列を含むレルムにアクセスするためのEMP_ROLE権限をアプリケーション・ロールに付与します。

      • IT部門レルム内のすべてのレコード。ACL IT_ACLはこのレルムを制御し、SALARY列を除くレルムにアクセスするためのIT_ROLE権限をアプリケーション・ロールに付与します。

      • すべての従業員レコード・レルム。ACL HR_ACLは、このレルムを制御し、SALARY列を含むレルムにアクセスするためのHR_ROLE権限をアプリケーション・ロールに付与します。

      • 機密データの表示にVIEW_SALARY権限を要求することでSALARY列を保護する列制約。

    • 作成されたすべてのオブジェクトを検証して、すべての構成が正しいことを確認します。

    • DISPATCHERユーザーの作成による中間層関連構成の設定、このユーザーのパスワードの設定、このDISPATCHERユーザーへの管理ロールxscacheadminおよびxssessionadminの付与を行います。

  • hrdemo_run.sql: 直接ログオンでデモを実行し、次のことを示します。

    • ITアプリケーション・ユーザーDAUSTINは、IT部門のレコードを表示できますが、自分の給与レコードのみ表示でき、自分のレコードの更新はできません。

    • HRアプリケーション・ユーザーSMAVRISは、SALARY列のすべての給与行を含むすべてのレコードを表示でき、任意のレコードを更新できます。

  • hrdemo_run_sess.sql: Real Application Securityセッションを作成および連結するデモを実行し、次のことを示します。

    • Real Application Security管理者として接続し、アプリケーション・ユーザーSMAVRISのアプリケーション・セッションを作成して連結します。

    • 現在のユーザーをSMAVRISとして表示します。

    • 現在のユーザーSMAVRISに対して有効になっているデータベース・ロールをDB_EMP、アプリケーション・ロールをEMP_ROLEHR_ROLEおよびXSPUBLICとして表示します。

    • SMAVRISアプリケーション・ユーザーは、SALARY列のすべての給与行を含むすべてのレコードを表示できます。

    • HR_ROLEを無効にして、アプリケーション・ユーザーSMAVRISが自分の従業員レコードのみ表示できるように制限します。

    • HR_ROLEを有効にして、SMAVRISアプリケーション・ユーザーが、SALARY列のすべての給与行を含むすべてのレコードを再び表示できるようにします。

    • アプリケーション・セッションから連結解除します。

    • アプリケーション・セッションを破棄します。

  • hrdemo_clean.sql: アプリケーション・ロール、アプリケーション・ユーザー、ACL、データベース・セキュリティ・ポリシー、データベース・ロール、Real Application Security管理ユーザーおよび中間層ディスパッチャ・ユーザーを削除するクリーンアップ操作を実行します。

  • HRDemo.java: Javaインタフェースを使用してHRデモを実行します。

セキュリティHRデモ・コンポーネントの設定で、Real Application Securityの各コンポーネントが作成される方法を他のいくつかの重要タスクの実行とともに詳細に説明します。

セキュリティHRデモ・コンポーネントの設定

Real Application Securityコンポーネントを作成する前に、まずデータベース・ユーザーをReal Application Security管理者として作成し、この管理者にdbaおよびxs_session_admin権限を付与してから、Real Application Security管理者としてデータベースに接続する必要があります。

connect sys/password as sysdba
grant dba, xs_session_admin to rasadm identified by rasadm;
connect rasadm/rasadm;

ロールおよびアプリケーション・ユーザーの作成について

データベース・ロールDB_EMPを作成し、このロールに必要な表権限を付与します。このロールを使用して、アプリケーション・ユーザーに必要なオブジェクト権限を付与します。

create role db_emp;
grant select, insert, update, delete on hr.employees to db_emp; 

一般的な従業員用のアプリケーション・ロールEMP_ROLEを作成します。

exec xs_principal.create_role(name => 'emp_role', enabled => true);

IT部門用のアプリケーション・ロールIT_ROLEを作成します。

exec xs_principal.create_role(name => 'it_role', enabled => true);

HR部門用のアプリケーション・ロールHR_ROLEを作成します。

exec xs_principal.create_role(name => 'hr_role', enabled => true);

3つのアプリケーション・ロールにDB_EMPデータベース・ロールを付与して、それぞれが表へのアクセスに必要なオブジェクト権限を持つようにします。

grant db_emp to emp_role;
grant db_emp to it_role;
grant db_emp to hr_role;

アプリケーション・ユーザーを作成します。

アプリケーション・ユーザーDAUSTINを(IT部門に)作成し、ユーザー・アプリケーション・ロールEMP_ROLEおよびIT_ROLEを付与します。

exec  xs_principal.create_user(name => 'daustin', schema => 'hr');
exec  sys.xs_principal.set_password('daustin', 'welcome1');
exec  xs_principal.grant_roles('daustin', 'emp_role');
exec  xs_principal.grant_roles('daustin', 'it_role');

アプリケーション・ユーザーSMAVRISを(HR部門に)作成し、ユーザー・アプリケーション・ロールEMP_ROLEおよびHR_ROLEを付与します。

exec  xs_principal.create_user(name => 'smavris', schema => 'hr');
exec  sys.xs_principal.set_password('smavris', 'welcome1');
exec  xs_principal.grant_roles('smavris', 'emp_role');
exec  xs_principal.grant_roles('smavris', 'hr_role');

セキュリティ・クラスおよびACLの作成について

事前定義済のDMLセキュリティ・クラスに基づいてセキュリティ・クラスHRPRIVSを作成します。HRPRIVSには、SALARY列へのアクセスを制御する新しい権限VIEW_SALARYがあります。

declare
begin
  xs_security_class.create_security_class(
    name        => 'hrprivs', 
    parent_list => xs$name_list('sys.dml'),
    priv_list   => xs$privilege_list(xs$privilege('view_salary')));
end;
/

EMP_ACLIT_ACLおよびHR_ACLの3つのACLを作成して、後で定義するデータ・セキュリティ・ポリシーの権限を付与します。

declare  
  aces xs$ace_list := xs$ace_list();  
begin 
  aces.extend(1);
 
  -- EMP_ACL: This ACL grants EMP_ROLE the privileges to view an employee's
  --          own record including SALARY column.
  aces(1) := xs$ace_type(privilege_list => xs$name_list('select','view_salary'),
                         principal_name => 'emp_role');
 
  xs_acl.create_acl(name      => 'emp_acl',
                    ace_list  => aces,
                    sec_class => 'hrprivs');
  
  -- IT_ACL:  This ACL grants IT_ROLE the privilege to view the employee
  --          records in IT department, but it does not grant the VIEW_SALARY
  --          privilege that is required for access to SALARY column.
  aces(1) := xs$ace_type(privilege_list => xs$name_list('select'),
                         principal_name => 'it_role');
 
  xs_acl.create_acl(name      => 'it_acl',
                    ace_list  => aces,
                    sec_class => 'hrprivs');
 
  -- HR_ACL:  This ACL grants HR_ROLE the privileges to view and update all
  --          employees' records including SALARY column.
  aces(1):= xs$ace_type(privilege_list => xs$name_list('select', 'insert', 
                                          'update', 'delete', 'view_salary'),
                        principal_name => 'hr_role');
 
  xs_acl.create_acl(name      => 'hr_acl',
                    ace_list  => aces,
                    sec_class => 'hrprivs');
end;
/

データ・セキュリティ・ポリシーの作成について

EMPLOYEE表のデータ・セキュリティ・ポリシーを作成します。ポリシーは、3つのレルム制約とSALARY列を保護する列制約を定義します。

declare
  realms   xs$realm_constraint_list := xs$realm_constraint_list();      
  cols     xs$column_constraint_list := xs$column_constraint_list();
begin  
  realms.extend(3);
 
  -- Realm #1: Only the employee's own record. 
  --           EMP_ROLE can view the realm including SALARY column.     
  realms(1) := xs$realm_constraint_type(
    realm    => 'email = xs_sys_context(''xs$session'',''username'')',
    acl_list => xs$name_list('emp_acl'));
 
  -- Realm #2: The records in the IT department.
  --           IT_ROLE can view the realm excluding SALARY column.
  realms(2) := xs$realm_constraint_type(
    realm    => 'department_id = 60',
    acl_list => xs$name_list('it_acl'));
 
  -- Realm #3: All the records.
  --           HR_ROLE can view and update the realm including SALARY column.
  realms(3) := xs$realm_constraint_type(
    realm    => '1 = 1',
    acl_list => xs$name_list('hr_acl'));
 
  -- Column constraint protects SALARY column by requiring VIEW_SALARY 
  -- privilege.
  cols.extend(1);
  cols(1) := xs$column_constraint_type(
    column_list => xs$list('salary'),
    privilege   => 'view_salary');
 
  xs_data_security.create_policy(
    name                   => 'employees_ds',
    realm_constraint_list  => realms,
    column_constraint_list => cols);
end;
/

EMPLOYEES表にデータ・セキュリティ・ポリシーを適用します。

begin
  xs_data_security.apply_object_policy(
    policy => 'employees_ds', 
    schema => 'hr',
    object =>'employees');
end;
/

Real Application Securityオブジェクトの検証について

これらのReal Application Securityオブジェクトを作成した後で、これらを検証してすべて正しく構成されていることを確認します。

begin
  if (sys.xs_diag.validate_workspace()) then
    dbms_output.put_line('All configurations are correct.');
  else
    dbms_output.put_line('Some configurations are incorrect.');
  end if;
end;
/
-- XS$VALIDATION_TABLE contains validation errors if any.
-- Expect no rows selected.
select * from xs$validation_table order by 1, 2, 3, 4;

中間層関連構成の設定について

後で使用する中間層関連の構成を設定します。これには、DISPATCHERユーザーおよびパスワードの作成と、このユーザーへのxscacfeadminおよびxsessionadmin Real Application Security管理者権限の付与が含まれます。

exec sys.xs_principal.create_user(name=>'dispatcher', schema=>'HR');
exec sys.xs_principal.set_password('dispatcher', 'welcome1');
 
exec sys.xs_principal.grant_roles('dispatcher', 'xscacheadmin');
exec sys.xs_principal.grant_roles('dispatcher', 'xssessionadmin');

直接ログオンを使用したセキュリティHRデモの実行

HRデモを実行するには、まず、EMP_ROLEおよびIT_ROLEアプリケーション・ロールのみ持つアプリケーション・ユーザーDAUSTINとして接続します。

conn daustin/welcome1;

列値のかわりにデフォルトのインジケータ・アスタリスク(*******)を使用してセキュリティで保護された列値をSQL*Plusに表示する方法をカスタマイズします。

SET SECUREDCOL ON UNAUTH *******

問合せを実行して、アプリケーション・ユーザーDAUSTINはIT部門のレコードを表示できるが自分のSALARY列のみ表示できることを示します。

select email, first_name, last_name, department_id, manager_id, salary 
from employees order by email;

SQL> select email, first_name, last_name, department_id, manager_id, salary
  2  from employees order by email;
 
EMAIL      FIRST_NAME      LAST_NAME       DEPARTMENT_ID MANAGER_ID  SALARY
---------- --------------- --------------- ------------- ---------- -------
AHUNOLD    Alexander       Hunold                     60        102 *******
BERNST     Bruce           Ernst                      60        103 *******
DAUSTIN    David           Austin                     60        103    4800
DLORENTZ   Diana           Lorentz                    60        103 *******
VPATABAL   Valli           Pataballa                  60        103 *******
 
5 rows selected.

認可のないアプリケーション・ユーザーの列値およびセキュリティ・レベルが不明な列値のかわりにnull値を表示することで、セキュリティで保護された列値をSQL*Plusに表示する方法のデフォルト表示に設定します。

SET SECUREDCOL OFF 

更新操作を実行して、アプリケーション・ユーザーがレコードの更新を認可されないことを示します。

update employees set manager_id = 102 where email = 'DAUSTIN';

SQL> update employees set manager_id = 102 where email = 'DAUSTIN';
 
0 rows updated.

問合せを実行して、レコードが変更されていないことを示します。

select email, first_name, last_name, department_id, manager_id, salary
from employees where email = 'DAUSTIN';

SQL> select email, first_name, last_name, department_id, manager_id, salary
  2  from employees where email = 'DAUSTIN';
 
EMAIL      FIRST_NAME      LAST_NAME       DEPARTMENT_ID MANAGER_ID  SALARY
---------- --------------- --------------- ------------- ---------- -------
DAUSTIN    David           Austin                     60        103    4800
 
1 row selected.

EMP_ROLEHR_ROLEの両方のロールを持つアプリケーション・ユーザーSMAVRISとして接続します。

conn smavris/welcome1;

問合せを実行して、アプリケーション・ユーザーSMAVRISSALARY列を含むすべてのレコードを表示できることを示します。

select email, first_name, last_name, department_id, manager_id, salary 
from employees where department_id = 60 or department_id = 40
order by department_id, email;

SQL> select email, first_name, last_name, department_id, manager_id, salary
  2  from employees where department_id = 60 or department_id = 40
  3  order by department_id, email;
 
EMAIL      FIRST_NAME      LAST_NAME       DEPARTMENT_ID MANAGER_ID  SALARY
---------- --------------- --------------- ------------- ---------- -------
SMAVRIS    Susan           Mavris                     40        101    6500
AHUNOLD    Alexander       Hunold                     60        102    9000
BERNST     Bruce           Ernst                      60        103    6000
DAUSTIN    David           Austin                     60        103    4800
DLORENTZ   Diana           Lorentz                    60        103    4200
VPATABAL   Valli           Pataballa                  60        103    4800
 
6 rows selected.

問合せを実行して、アプリケーション・ユーザーSMAVRISがすべてのレコードにアクセスできることを示します。

select count(*) from employees;

SQL> select count(*) from employees;
 
  COUNT(*)
----------
       107
 
1 row selected.

レコードの更新を実行して、アプリケーション・ユーザーSMAVRISがレコードを更新できることを示します。

update employees set manager_id = 102 where email = 'DAUSTIN';

SQL> update employees set manager_id = 102 where email = 'DAUSTIN';
 
1 row updated.

問合せを実行して、レコードが変更されていることを示します。

select email, first_name, last_name, department_id, manager_id, salary
from employees where email = 'DAUSTIN';

SQL> select email, first_name, last_name, department_id, manager_id, salary
  2  from employees where email = 'DAUSTIN';
 
EMAIL      FIRST_NAME      LAST_NAME       DEPARTMENT_ID MANAGER_ID  SALARY
---------- --------------- --------------- ------------- ---------- -------
DAUSTIN    David           Austin                     60        102    4800
 
1 row selected.

レコードを更新して、元の状態に戻します。

update employees set manager_id = 103 where email = 'DAUSTIN';

SQL> update employees set manager_id = 103 where email = 'DAUSTIN';
 
1 row updated.

Real Application Securityセッションに連結されたセキュリティHRデモの実行

Real Application Securityセッションに連結されているデモを実行するには、Real Application Security管理者が最初にアプリケーション・ユーザーのセッションを作成し、それに連結する必要があります。プロセスで、セッションIDを記憶する変数を作成します。

connect rasadm/rasadm;

var gsessionid varchar2(32);

declare
  sessionid raw(16);
begin
  sys.dbms_xs_sessions.create_session('SMAVRIS', sessionid);
  :gsessionid := rawtohex(sessionid);
  sys.dbms_xs_sessions.attach_session(sessionid, null);
end ;
/

現在のユーザーを表示します。

select xs_sys_context('xs$session','username') from dual;

SQL> select xs_sys_context('xs$session','username') from dual;
 
XS_SYS_CONTEXT('XS$SESSION','USERNAME')
--------------------------------------------------------------------------------
SMAVRIS
 
1 row selected.

現在のアプリケーション・ユーザーに対して有効になっているデータベースおよびアプリケーション・ロールを表示します。

select role_name from v$xs_session_roles union
select role from session_roles order by 1;

SQL> select role_name from v$xs_session_roles union
  2  select role from session_roles order by 1;
 
ROLE_NAME
--------------------------------------------------------------------------------
DB_EMP
EMP_ROLE
HR_ROLE
XSPUBLIC
 
4 rows selected.

問合せを実行して、アプリケーション・ユーザーSMAVRISSALARY列を含むすべてのレコードを表示できることを示します。

select email, first_name, last_name, department_id, manager_id, salary 
from employees where department_id = 60 or department_id = 40
order by department_id, email;

SQL> select email, first_name, last_name, department_id, manager_id, salary
  2  from employees where department_id = 60 or department_id = 40
  3  order by department_id, email;
 
EMAIL      FIRST_NAME      LAST_NAME       DEPARTMENT_ID MANAGER_ID  SALARY
---------- --------------- --------------- ------------- ---------- -------
SMAVRIS    Susan           Mavris                     40        101    6500
AHUNOLD    Alexander       Hunold                     60        102    9000
BERNST     Bruce           Ernst                      60        103    6000
DAUSTIN    David           Austin                     60        103    4800
DLORENTZ   Diana           Lorentz                    60        103    4200
VPATABAL   Valli           Pataballa                  60        103    4800
 
6 rows selected.

問合せを実行して、アプリケーション・ユーザーSMAVRISがすべてのレコードにアクセスできることを示します。

select count(*) from employees;

SQL> select count(*) from employees;
 
  COUNT(*)
----------
       107
 
1 row selected.

HR_ROLEを無効にします。これにより、アプリケーション・ユーザーSMAVRISは自分のレコードのみ表示できるように制限されます。

exec dbms_xs_sessions.disable_role('hr_role');

問合せの実行

select email, first_name, last_name, department_id, manager_id, salary 
from employees where department_id = 60 or department_id = 40
order by department_id, email;

SQL> select email, first_name, last_name, department_id, manager_id, salary
  2  from employees where department_id = 60 or department_id = 40
  3  order by department_id, email;
 
EMAIL      FIRST_NAME      LAST_NAME       DEPARTMENT_ID MANAGER_ID  SALARY
---------- --------------- --------------- ------------- ---------- -------
SMAVRIS    Susan           Mavris                     40        101    6500
 
1 row selected.

HR_ROLEを有効にして、ユーザーがSALARY列を含むすべてのレコードを表示できるようにします。

exec dbms_xs_sessions.enable_role('hr_role');

問合せを実行して、アプリケーション・ユーザーがSALARY列を含むすべてのレコードを表示できることを示します。

select email, first_name, last_name, department_id, manager_id, salary 
from employees where department_id = 60 or department_id = 40
order by department_id, email;

SQL> -- SMAVRIS can view all the records again.
SQL> select email, first_name, last_name, department_id, manager_id, salary
  2  from employees where department_id = 60 or department_id = 40
  3  order by department_id, email;
 
EMAIL      FIRST_NAME      LAST_NAME       DEPARTMENT_ID MANAGER_ID  SALARY
---------- --------------- --------------- ------------- ---------- -------
SMAVRIS    Susan           Mavris                     40        101    6500
AHUNOLD    Alexander       Hunold                     60        102    9000
BERNST     Bruce           Ernst                      60        103    6000
DAUSTIN    David           Austin                     60        103    4800
DLORENTZ   Diana           Lorentz                    60        103    4200
VPATABAL   Valli           Pataballa                  60        103    4800
 
6 rows selected.

問合せを実行して、アプリケーション・ユーザーSMAVRISがすべてのレコードにアクセスできることを示します。

select count(*) from employees;

SQL> select count(*) from employees;
 
  COUNT(*)
----------
       107
 
1 row selected.

アプリケーション・セッションを連結解除して破棄します。

declare
  sessionid raw(16);
begin
  sessionid := hextoraw(:gsessionid);
  sys.dbms_xs_sessions.detach_session;
  sys.dbms_xs_sessions.destroy_session(sessionid);
end;
/

セキュリティHRデモ・クリーンアップ・スクリプトの実行

HRデモを実行した後で、クリーン・アップ・スクリプトを実行して、すべてのReal Application Securityコンポーネントを削除できます。

開始するには、Real Application Security管理者として接続し、コンポーネントの削除を開始します。

connect rasadm/rasadm;

EMPLOYEES表からデータ・セキュリティ・ポリシーを削除します。

begin
  xs_data_security.remove_object_policy(policy=>'employees_ds', 
                                        schema=>'hr', object=>'employees');
end;
/

アプリケーション・ロールおよびアプリケーション・ユーザーを削除します。

exec sys.xs_principal.delete_principal('emp_role', xs_admin_util.cascade_option);
exec sys.xs_principal.delete_principal('hr_role', xs_admin_util.cascade_option);
exec sys.xs_principal.delete_principal('it_role', xs_admin_util.cascade_option);
exec sys.xs_principal.delete_principal('smavris', xs_admin_util.cascade_option);
exec sys.xs_principal.delete_principal('daustin', xs_admin_util.cascade_option);

セキュリティ・クラスとACLを削除します。

exec sys.xs_security_class.delete_security_class('hrprivs', xs_admin_util.cascade_option);
exec sys.xs_acl.delete_acl('emp_acl', xs_admin_util.cascade_option);
exec sys.xs_acl.delete_acl('it_acl', xs_admin_util.cascade_option);
exec sys.xs_acl.delete_acl('hr_acl', xs_admin_util.cascade_option);

データ・セキュリティ・ポリシーを削除します。

exec sys.xs_data_security.delete_policy('employees_ds', xs_admin_util.cascade_option);

データベース・ロールを削除します。

drop role db_emp;

Real Application Security管理者を削除します。

connect sys/knl_test7 as sysdba
drop user rasadm;

中間層で使用されているDISPATCHERユーザーを削除します。

exec sys.xs_principal.delete_principal('dispatcher', xs_admin_util.cascade_option);

JavaインタフェースでのセキュリティHRデモの実行

JavaインタフェースでのセキュリティHRデモの実行により戻される2つの問合せの説明は、人事管理のユースケース: Javaでの実装の「出力」の項を参照してください。

RASADMを使用したセキュリティHRデモの実行について

グラフィカル・ユーザー・インタフェースを使用してReal Application Securityデータ・セキュリティ・ポリシーを作成するRASADMの使用方法を説明します。

Oracle Database Real Application Security管理(RASADM)では、グラフィカル・ユーザー・インタフェースを使用してReal Application Securityデータ・セキュリティ・ポリシーを作成できます。RASADMのインストールと構成の詳細は、Oracle Database Real Application Security管理を参照してください。

この節では、以下のトピックについて説明します。

RASADMアプリケーションの実行について

RASADMアプリケーションの実行方法について説明します。

次のURLは単なる例で、実際のURLは、現在のApplication Express構成に基づいています。正しいURLを指定してください。次に、インストール時に指定したのと同じパスワードを使用してRASADM管理者としてログインします。

RASADMアプリケーションを実行するには、ブラウザで次のようなURL (https://www.example.com:8080/apex/f?p=rasadm)を入力します。

HTTPSをオンにすることをお薦めします。

インストール時に指定したパスワードを使用して、RASADM adminユーザー、またはインストール後に作成された任意のユーザーとして次の画面のようにしてログインできます。

関連情報

詳細は、次のリソースを参照してください。

設計フェーズ

設計フェーズで、データ・アクセスの制御にアプリケーション権限が必要なアプリケーションによって実行されるすべてのタスクを識別します。

設計フェーズでは、データ・アクセスの制御にアプリケーション権限が必要なアプリケーションによって実行されるすべてのタスクを識別します。たとえば、アプリケーション・ポリシー設計者は設計フェーズで次の項目を識別する必要があります。

  1. アクセス制御が必要な一連のアプリケーション・レベル操作。

  2. アプリケーション・レベル操作の中でアクセスできる表やビューの行と列。

  3. それらの操作を実行できる一連のアクターまたはプリンシパル(ユーザーおよびロール)。

  4. 表またはビューの行を特定するランタイム・アプリケーション・セッション属性。これらの属性名は、認可する行を選択する述語内で使用され、属性の値はアプリケーションの実行時に設定されます。

開発フロー

RASADMを使用してデータ・セキュリティ・ポリシーを開発するには、次の基本手順に従う必要があります。

開発フェーズでは、RASADM管理者として、次の手順に従ってRASADMを使用してデータ・セキュリティ・ポリシーを開発します。

  1. 対応するアプリケーション・ユーザーおよびロールを作成します。外部ディレクトリ・サーバーを使用している場合は、そのディレクトリ・サーバーでアプリケーション・ユーザーおよびロールまたはユーザー・グループを作成します。次の手順に従って、これらのプリンシパルをデータベース固有になるように作成します。

    1. アプリケーション・ロールを作成し、必要な場合はアプリケーション・ロールをアプリケーション・ロールに付与します。アプリケーション・ロールの作成に関するトピックを参照してください。

    2. アプリケーション・ユーザーを作成し、アプリケーション・ロールをアプリケーション・ユーザーに付与します。アプリケーション・ユーザーの作成に関するトピックを参照してください。

    3. 外部ストアのプリンシパルが使用されるときは、ユーザーとロールをフェッチするようにディレクトリ・サーバーを構成します。構成に関するトピックを参照してください。

    4. 外部ディレクトリ・サーバーのユーザーとロールの場合は、ディレクトリ・サーバーでRASADMを使用するためにパラメータの設定を管理します。設定の管理に関するトピックを参照してください。

  2. アプリケーションのセキュリティ・ポリシーの開発に使用する予定の権限クラスをそれぞれ作成します。各権限クラスは1つ以上の適切な権限で構成されます。これらの権限は管理者が定義し、ACLで参照できます。アプリケーション・ユーザーおよびアプリケーション・ロールに付与することもできます。各権限クラスは、ACLを介して、データ・セキュリティ・ポリシーの必須アプリケーション・レベル操作を認可します。アプリケーション権限クラスの作成に関するトピックを参照してください。

  3. 異なるアプリケーション・セッションで使用できる1つ以上のセッション・ネームスペースを作成します。このとき、セッション・ネームスペースに対して、一連のプロパティ(アプリケーション属性)とそれに関連するアクセス制御ポリシーまたはACL (リストから選択または作成)を定義します。ネームスペースの作成に関するトピックを参照してください。

  4. 各データ・レルムとACLを関連付けることで、データ・セキュリティ・ポリシーを作成します。必要に応じて、データ・レルム認可と列認可の両方を作成します。このプロセスは、次の4つの部分で構成されます。

    1. ポリシー情報 - 保護対象のオブジェクトと、それを保護する権限クラスを選択し、ポリシー名を指定してポリシー・スキーマを選択します。データ・セキュリティ・ポリシーの作成に関するトピックの手順3を参照してください。

    2. 列レベル認可 - 保護対象の列の名前を選択し、その列にアクセスするために付与する権限を選択します(この列には手順3aで選択した権限クラスが関連付けられています)。データ・セキュリティ・ポリシーの作成に関するトピックの手順4を参照してください。

    3. データ・レルム認可 - 保護対象のデータ・レルムを表すSQL述語を作成し、それぞれをデータ・レルム付与リストに追加します。その後、データ・レルムを保護するACLを選択するか作成します。次に、権限付与リストに追加する権限付与を作成します。このリストには、各プリンシパルと、それぞれの権限が許可されているかいないか(該当する権限を選択して設定)が含まれます。データ・セキュリティ・ポリシーの作成に関するトピックの手順5を参照してください。

    4. ポリシーの適用 - 作成しているデータ・セキュリティ・ポリシーの適用、削除、有効化または無効化を行うことができます。また、特定の適用オプションを指定するように選択できます。これによって、表またはビューの所有者によるデータ・セキュリティ・ポリシーのバイパスを許可したり、このポリシーに対して文のタイプを強制するかどうかを設定したりできます。データ・セキュリティ・ポリシーの作成に関するトピックの手順6を参照してください。

RASADMを使用したHRデモの作成について

RASADMを使用してHRデモ・アプリケーションを作成する方法について説明します。

まず、RASADMアプリケーションの実行についておよび次の画面で説明したように、RASADMアプリケーションを実行して、ADMINユーザーとしてログインする必要があります。

次のタスクを実行します。

アプリケーション・ロールの作成について

アプリケーション・ロールおよび特にデータベースDB_EMPロールを作成する方法を説明します。

次のコード・スニペットに示すように、SQL*Plusを使用してデータベースのDB_EMPロールを作成し、HR.EMPLOYEESSELECTINSERTUPDATEおよびDELETE権限をこのロールに付与する必要があります。

-- Create database role DB_EMP and grant necessary table privileges.
-- This role will be used to grant the required object privileges to
-- application users.
CREATE ROLE DB_EMP;
GRANT SELECT, INSERT, UPDATE, DELETE ON HR.EMPLOYEES TO DB_EMP;

詳細は、hrdemo_setup.sqlを参照してください。

このタスクでは、アプリケーション・ロール、EMP_ROLEIT_ROLEおよびHR_ROLEを作成してから、各アプリケーション・ロールを有効化します。

このタスクは、次の2つの方法のいずれかで行うことができます。

  • RASADMを使用してこれらのアプリケーション・ロールを作成します。

  • 外部ディレクトリ・サーバーを使用して、そのディレクトリ・サーバーにアプリケーション・ロールを作成します。

どちらのケースでも、HRデモの場合には次のアプリケーション・ロールが作成されます。

  • EMP_ROLE

  • IT_ROLE

  • HR_ROLE

最後に、次のコード・スニペットに示すように、SQL*Plusを使用して、これらのアプリケーション・ロールそれぞれにデータベースのDB_EMPロールを付与します。

-- Grant DB_EMP to the three application roles, so they have the required 
-- object privilege to access the table. 
GRANT DB_EMP TO EMP_ROLE;
GRANT DB_EMP TO IT_ROLE;
GRANT DB_EMP TO HR_ROLE;

詳細は、hrdemo_setup.sqlを参照してください。

ディレクトリ・サーバーで作成されたロールを使用したアプリケーション・ロールの作成

ディレクトリ・サーバーで作成されたロールを使用したアプリケーション・ロールの作成について説明します。

これはこの情報のプレースホルダです。
未定
  1. 未定
  2. 未定
未定
RASADMを使用したアプリケーション・ロールの作成

RASADMを使用したアプリケーション・ロールの作成について説明します。

最初に、「ロール」タブをクリックし、「ロールの作成」をクリックします。
  1. アプリケーション・ロール・ページで次のフィールドに情報を入力します。
    1. ロール名: EMP_ROLEを入力します。
    2. 説明: 簡単な説明を入力します。
    3. ロール・タイプ: デフォルトの「ROLE」を選択します。
    4. デフォルトで有効: 「はい」を選択します。
  2. 「ロール付与」セクションの「ロール」フィールドで「^」をクリックし、リストからDB_EMPロールを選択して、直接ロール付与として追加します。
  3. 「変更の適用」をクリックして、EMP_ROLE アプリケーション・ロールを作成します。
  4. ロールEMP_ROLEをクリックして、このロールの編集ビューが次のスクリーン・ショットに示すとおりか確認します。
  5. この手順を繰り返して、IT_ROLEおよびHR_ROLEアプリケーション・ロールを作成します。ここでも、これらのアプリケーション・ロール両方に対して、付与するアプリケーション・ロールはありません。

アプリケーション・ユーザーの作成について

アプリケーション・ユーザーの作成およびそのユーザーへのロールの付与について説明します。

このタスクでは、各アプリケーション・ユーザーを作成して、対応するアプリケーション・ロールを各アプリケーション・ユーザーに付与します。

このタスクは、次の2つの方法のいずれかで行うことができます。

  • RASADMを使用して、アプリケーション・ユーザーDAUSTINおよびSMAVRISを作成します。

    次の付与を実行します。

    • アプリケーション・ロールEMP_ROLEおよびIT_ROLEDAUSTINに付与します。

    • アプリケーション・ロールEMP_ROLEおよびHR_ROLESMAVRISに付与します。

  • 外部ディレクトリ・サーバーを使用して、そのディレクトリ・サーバーでアプリケーション・ユーザーまたはアプリケーション・ユーザー・グループを作成します。

どちらのケースでも、このHRデモに対して次のアプリケーション・ユーザーが作成されます。

  • DAUSTIN

  • SMAVRIS

次の付与を実行します。

  • アプリケーション・ロールEMP_ROLEをユーザーDAUSTINおよびSMAVRISに付与します。

  • アプリケーション・ロールIT_ROLEをユーザーDAUSTINに付与します。

  • アプリケーション・ロールHR_ROLEをユーザーSMAVRISに付与します。

RASADMを使用したアプリケーション・ユーザーの作成

RASADMを使用したアプリケーション・ユーザーの作成について説明します。

最初に、「ユーザー」タブをクリックし、「ユーザーの作成」をクリックします。
  1. 「アプリケーション・ユーザー」セクションのユーザーの管理ページで、次のフィールドに情報を入力します。
    1. 名前: DAUSTIN.と入力します
    2. 説明: 簡単な説明を入力します。
    3. デフォルト・スキーマ: 「HR」を選択します。
    4. デフォルトでロールを有効化: 「はい」を選択します。
    5. ステータス: 「アクティブ」を選択します。
  2. ロール付与セクションで、アプリケーション・ユーザーdaustinに付与するアプリケーション・ロールを選択します。^をクリックしEMP_ROLEを選択して、ロール:フィールドに情報を入力します。
  3. 「追加」をクリックして、このロールを付与します。このプロセスを繰り返して、IT_ROLEDAUSTINに付与します。
  4. 「変更の適用」をクリックして、アプリケーション・ユーザーDAUSTINを作成します。
  5. ユーザーDAUSTINをクリックして、このユーザーの編集ビューが次のスクリーン・ショットに示すとおりか確認します。
  6. この手順を繰り返して、EMP_ROLEおよびHR_ROLEをアプリケーション・ユーザーSMAVRISに付与します。
ディレクトリ・サーバーを使用したアプリケーション・ユーザーの作成

ディレクトリ・サーバーを使用したアプリケーション・ユーザーの作成について説明します。

ディレクトリ・サーバーを使用し、次の手順に従ってアプリケーション・ユーザーを作成できます。
未定
  1. 未定
  2. 未定
未定

データ・セキュリティ・ポリシーの作成について

データ・セキュリティ・ポリシーを作成するためのプロセス・フローについて説明します。

このタスクでは、HRDEMOデータ・セキュリティ・ポリシーを作成します。内容は次のとおりです。

  • ポリシーの情報を入力します。

  • HRPRIVS権限クラスとVIEW_SALARY権限を作成します。

  • SALARY列認可を作成し、HRPRIVS権限クラスを選択して、この列に適用します。

  • 3つのデータ・レルムで構成されるデータ・レルム認可を作成します。各レルムは従業員アクセス、ITアクセスおよびHRアクセスに対応し、それぞれにACLが関連付けられています(ACLには、各プリンシパルによる行アクセスを制御するように定義された権限付与が含まれます)。

  • HRDEMOデータ・セキュリティ・ポリシーを有効化して適用します。

この項には次のトピックが含まれます:

ポリシー情報の入力

RASADMアプリケーションを使用したデータ・セキュリティ・ポリシー情報の入力について説明します。

データ・セキュリティ・ポリシーを作成するには、「ポリシー」タブをクリックし、「作成」をクリックしてポリシー情報ページを表示します。
  1. ポリシー情報ページで次のフィールドにポリシー情報を入力します。
    1. ポリシー・スキーマ: 「^」をクリックして「HR」を選択します。
    2. ポリシー名: Employees_DSという名前を入力します。
    3. 説明: このポリシーの簡単な説明を入力します。
    4. 権限クラス: 「新規」をクリックして、HRPRIVS権限クラスを作成します。
  2. 権限クラスページで次の情報を入力します。
    1. 権限クラスの場合。権限クラス名: HRPRIVSと入力します。
    2. 権限クラスの場合。説明: 簡単な説明を入力します。
    3. アプリケーション権限の場合。権限名: VIEW_SALARYという名前を入力します
    4. アプリケーション権限の場合。説明: 簡単な説明を入力します。
    5. アプリケーション権限の場合。暗黙の権限: 「選択」をクリックします。
    6. 「追加」をクリックして、VIEW_SALARY権限をアプリケーション権限リストに追加します。次の図を参照してください。
    7. 「変更の適用」をクリックして、HRPRIVS権限クラスを保存します。
  3. 同じ権限クラスページで次の情報を入力します。
    1. 保護対象オブジェクトのスキーマ: 「^」をクリックして「HR」を選択します。
    2. 保護対象オブジェクト: 「^」をクリックして、「EMPLOYEES」を選択します。
    次のスクリーン・ショットは、Employees_DSデータ・セキュリティ・ポリシーのポリシー情報ページを示します。
  4. 「次へ」をクリックして列認可ページに移動します。
列認可の作成

データ・セキュリティ・ポリシーの列認可部分の作成について説明します。

  1. 列認可ページで、次の情報を入力して列認可を作成します。
    1. 列: 「^」をクリックして、「SALARY」を選択します。
    2. 権限: 「^」をクリックして、「VIEW_SALARY」を選択します。
  2. 「追加」をクリックして、列認可を列制約リストに追加します。
    次のスクリーン・ショットは、VIEW_SALARY権限により保護された作成済SALARY列認可を含む列認可ページを示します。
  3. 「次へ」をクリックしてデータ・レルム認可ページに移動します。
データ・レルム認可の作成

データ・セキュリティ・ポリシーのデータ・レルム認可部分の作成について説明します。

3つのデータ・レルム認可を次のように作成します。
  • IT_ROLEが付与されたユーザーが、SALARY列を除くIT部門のレコードを表示できるようにします。

  • EMP_ROLEが付与されたユーザーが、SALARY列を含む自分のレコードを表示できるようにします

  • HR_ROLEが付与されたユーザーが、SALARY列を含むすべてのレコードを表示および更新できるようにします。

  1. データ・レルム認可ページで、次のフィールドに情報を入力してIT部門のメンバーがSALARY列を除くそれぞれの部門レコードにアクセスできるデータ・レルムを作成します。
    1. 説明: 簡単な説明を入力します。
    2. 「SQL述語」: 「>」をクリックして、述語ビルダー・フィールドを展開します。次のフィールドに情報を入力します。
    3. 「列名」: 「^」をクリックして、列名DEPARTMENTを選択します。
    4. 「演算子」: 「^」をクリックして=演算子を選択します。
    5. 「値」: 値として60を入力します。
    6. AND/OR: このオプションは無視します。
    7. 「適用」をクリックしてSQL述語を作成します。
    次のスクリーン・ショットは、完成したIT部門データ・レルム認可を示します。
  2. 「ACL名」: 「+」をクリックしてIT_ACLを作成します。次のフィールドに情報を入力します。
    1. ACL制御リスト(ACL)の場合、「ACL名」: IT_ACLと入力します。
    2. ACL制御リスト(ACL)の場合、「説明」: 簡潔な説明を入力します。
    3. ACL制御リスト(ACL)の場合、ACL継承: このフィールドを無視します。
    4. 「権限の付与」の場合、「プリンシパル」: 「<-」をクリックしてプリンシパルを選択します。
    5. 「権限の付与」の場合、「プリンシパル・タイプ」: 「ユーザー」をクリックします。
    6. 「権限の付与」の場合、ブリンシパル・ストア: Databaseをクリックします。
    7. 「権限の付与」の場合、プリンシパル・フィルタ: DAUSTINと入力して「検索」をクリックします。「選択」をクリックしてプリンシパルとして「DAUSTIN」を選択します。
    8. 「権限の付与」の場合、「権限」: デフォルトのオプション「SELECT」を選択します。
    9. 「権限の付与」の場合、「権限付与」: オプション「権限付与」を選択します。
    10. 「追加」をクリックして、この権限付与を追加します。
    次のスクリーン・ショットは、完成したIT_ACL ACLおよびIT_ROLEロールに付与されたSELECT権限の権限付与を示します。
  3. データ・レルム付与: 「追加」をクリックしてこのデータ・レルムの権限を付与します。
  4. データ・レルム認可ページで、「追加」をクリックして、次のデータ・レルム認可の追加を開始します。次のフィールドに情報を入力して従業員がSALARY列を含むそれぞれの固有のレコードにアクセスできるデータ・レルムを作成します。
    1. 説明: 簡単な説明を入力します。
    2. 「SQL述語」: UPPER(email) = XS_SYS_CONTEXT('XS$SESSION','USERNAME')と入力します。
    3. 「プレビュー」をクリックして、問合せの結果を表示し、予期したものかどうかを確認します。
  5. 「ACL名」: 「+」をクリックしてEMP_ACLを作成します。次のフィールドに情報を入力します。
    1. ACL制御リスト(ACL)の場合、「ACL名」: EMP_ACLと入力します。
    2. ACL制御リスト(ACL)の場合、「説明」: 簡潔な説明を入力します。
    3. ACL制御リスト(ACL)の場合、ACL継承: このフィールドを無視します。
    4. 「権限の付与」の場合、「プリンシパル」: 「<-」をクリックしてプリンシパルを選択します。
    5. 「権限の付与」の場合、「プリンシパル・タイプ」: 「ユーザー」をクリックします。
    6. 「権限の付与」の場合、ブリンシパル・ストア: Databaseをクリックします。
    7. 「権限の付与」の場合、プリンシパル・フィルタ: DAUSTINと入力して「検索」をクリックします。「選択」をクリックしてプリンシパルとして「DAUSTIN」を選択します。
    8. 「権限の付与」の場合、「権限」: デフォルトのオプション「SELECT」を選択します。
    9. 「権限の付与」の場合、「権限付与」: オプション「権限付与」を選択します。
    10. 「追加」をクリックして、この権限付与を追加します。
    11. ユーザーSMAVRISに対してこれら2つの付与操作を繰り返して、ユーザーSMAVRISSELECTおよびVIEW_SALARYアプリケーション権限を付与します。
  6. データ・レルム付与: 「追加」をクリックしてこのデータ・レルムの権限を付与します。
  7. データ・レルム認可ページで、「追加」をクリックして、次のデータ・レルム認可の追加を開始します。次のフィールドに情報を入力してHR職員がSALARY列を含む全従業員のレコードにアクセスおよび更新できるデータ・レルムを作成します。
    1. 説明: 簡単な説明を入力します。
    2. 「SQL述語」: UPPER(email) = XS_SYS_CONTEXT('XS$SESSION','USERNAME')と入力します。
    3. 「プレビュー」をクリックして、問合せの結果を表示し、予期したものかどうかを確認します。
  8. 「ACL名」: 「+」をクリックしてHR_ACLを作成します。次のフィールドに情報を入力します。
    1. ACL制御リスト(ACL)の場合、「ACL名」: HR_ACLと入力します。
    2. ACL制御リスト(ACL)の場合、「説明」: 簡潔な説明を入力します。
    3. ACL制御リスト(ACL)の場合、ACL継承: このフィールドを無視します。
    4. 「権限の付与」の場合、「プリンシパル」: 「<-」をクリックしてプリンシパルを選択します。
    5. 「権限の付与」の場合、「プリンシパル・タイプ」: 「ユーザー」をクリックします。
    6. 「権限の付与」の場合、ブリンシパル・ストア: Databaseをクリックします。
    7. 「権限の付与」の場合、プリンシパル・フィルタ: SMAVRISと入力して「検索」をクリックします。「選択」をクリックしてプリンシパルとして「SMAVRIS」を選択します。
    8. 「権限の付与」の場合、「権限」: デフォルトのオプション「SELECT」を選択します。
    9. 「権限の付与」の場合、「権限付与」: オプション「権限付与」を選択します。
    10. この「権限の付与」手順を繰り返して、UPDATESMAVRISに付与します。
    11. 「権限の付与」の場合、「プリンシパル」: 「<-」をクリックしてプリンシパルを選択します。
    12. 「権限の付与」の場合、「プリンシパル・タイプ」: 「ユーザー」をクリックします。
    13. 「権限の付与」の場合、ブリンシパル・ストア: Databaseをクリックします。
    14. 「権限の付与」の場合、プリンシパル・フィルタ: SMAVRISと入力して「検索」をクリックします。「選択」をクリックしてプリンシパルとして「SMAVRIS」を選択します。
    15. 「権限の付与」の場合、「権限」: 「UPDATE」を選択します。
    16. 「権限の付与」の場合、「権限付与」: オプション「権限付与」を選択します。
    17. この手順をさらに2回繰り返して、INSERTDELETESMAVRISに付与します。
    18. 「追加」をクリックして、この権限付与を追加します。
  9. データ・レルム付与: 「追加」をクリックして、このデータ・レルム認可をデータ・レルム認可のリストに追加します。
次のスクリーン・ショットは、完成した3つのデータ・レルム認可および完成した列認可を示します。

ポリシーの適用

データ・セキュリティ・ポリシーの適用について説明します。

Employees_DSデータ・セキュリティ・ポリシーを適用するには、次の手順を実行します。
  1. ポリシーの適用ページで、「有効化」を選択してこのデータ・セキュリティ・ポリシーを有効化することでポリシーの適用フィールドに情報を入力します。
    次のスクリーン・ショットは、すでに有効に設定されたポリシーを含むポリシーページの、完成したEmployees_DSデータ・セキュリティ・ポリシーを示します。
  2. 「変更の適用」をクリックして、Employees_DSデータ・セキュリティ・ポリシーを作成します。