ポリシーの権限管理
権限項目
ポリシーの作成と適用は、CREATE、APPLY、ALTER、DROP などの権限によって制御されます。管理者は、ビジネスシナリオに基づいて、これらの権限をいくつかの部門や役割に委任するかどうかを決定できます。
権限項目 | 説明 |
---|---|
CREATE MASKING POLICY | データ ベースにマスキングポリシーを作成します。 |
CREATE ROW ACCESS POLICY | データベースに行アクセスポリシーを作成します。 |
APPLY | ポリシーをテーブルに適用します。 |
ALTER | ポリシーを変更します。 |
DROP | ポリシーを削除します。 |
CREATE MASKING POLICY,CREATE ROW ACCESS POLICY
ユーザーまたは役割がデータベースにポリシーを作成する権限を持っているかどうかを制御します。
GRANT CREATE MASKING POLICY ON DATABASE <db_name> TO ROLE <role_name>
GRANT CREATE ROW ACCESS POLICY ON DATABASE <db_name> TO ROLE <role_name>
REVOKE CREATE MASKING POLICY ON DATABASE <db_name> FROM ROLE <role_name>
REVOKE CREATE ROW ACCESS POLICY ON DATABASE <db_name> FROM ROLE <role_name>
APPLY
ユーザーまたは役割がポリシーを適用する権限、またはすべてのポリシーを適用する権限を持っているかどうかを制御します。
GRANT APPLY ON MASKING POLICY <policy_name> TO ROLE <role_name>
GRANT APPLY ON ROW ACCESS POLICY <policy_name> TO ROLE <role_name>
REVOKE APPLY ON MASKING POLICY <policy_name> FROM ROLE <role_name>
REVOKE APPLY ON ROW ACCESS POLICY <policy_name> FROM ROLE <role_name>
GRANT APPLY ON ALL MASKING POLICIES TO ROLE <role_name>
GRANT APPLY ON ALL MASKING POLICIES IN ALL DATABASES TO ROLE <role_name>
ALTER
ユーザーまたは役割がポリシーを変更する権限を持っているかどうかを制御します。
GRANT ALTER ON MASKING POLICY <policy_name> TO ROLE <role_name>
GRANT ALTER ON ROW ACCESS POLICY <policy_name> TO ROLE <role_name>
DROP
ユーザーまたは役割がポリシーを削除する権限を持っているかどうかを制御します。
GRANT DROP ON MASKING POLICY <policy_name> TO ROLE <role_name>
GRANT DROP ON ROW ACCESS POLICY <policy_name> TO ROLE <role_name>
SQL コマンドに必要な権限
ポリシーを作成および管理するために 使用される SQL コマンドには権限が必要です。これらのコマンドの構文と例については、Masking policies および Row access policies を参照してください。
マスキングポリシー
SQL | 必要な権限 | GRANT 構文 |
---|---|---|
CREATE MASKING POLICY | CREATE MASKING POLICY | GRANT CREATE MASKING POLICY ON DATABASE <db_name> TO ROLE <role_name> |
ALTER TABLE...SET MASKING POLICY | ALTER および APPLY |
|
ALTER TABLE...UNSET MASKING POLICY | ALTER | GRANT ALTER ON TABLE <table_name> TO ROLE <role_name> |
ALTER MASKING POLICY | ALTER | GRANT ALTER ON MASKING POLICY <policy_name> to ROLE <role_name> |
SHOW MASKING POLICIES | なし | なし |
SHOW CREATE MASKING POLICY | APPLY、ALTER、または DROP のいずれか | |
DROP MASKING POLICY | DROP | GRANT DROP ON MASKING POLICY <policy_name> to ROLE <role_name> |
行アクセスポリシー
SQL | 必要な権限 | GRANT 構文 |
---|---|---|
CREATE ROW ACCESS POLICY POLICY | CREATE ROW ACCESS POLICY | GRANT CREATE ROW ACCESS POLICY ON DATABASE <db_name> TO ROLE <role_name> |
ALTER TABLE...ADD ROW ACCESS POLICY | ALTER および APPLY |
|
ALTER TABLE...DROP ROW ACCESS POLICY | ALTER | GRANT ALTER ON TABLE <table_name> TO ROLE <role_name> |
ALTER ROW ACCESS POLICY | ALTER | GRANT ALTER ON ROW ACCESS POLICY <policy_name> to ROLE <role_name> |
SHOW ROW ACCESS POLICIES | なし | なし |
SHOW CREATE ROW ACCESS POLICY | APPLY、ALTER、または DROP のいずれか | |
DROP ROW ACCESS POLICY | DROP | GRANT DROP ON ROW ACCESS POLICY <policy_name> to ROLE <role_name> |
権限の管理
職務分離を実現するために、集中型、分散型、ハイブリッド型の 3 つのデータ管理モデルがサポートされています。ビジネス要件に合わせてポリシー関連の権限を委任する方法を決定できます。
集中型 | ハイブリ ッド型 | 分散型 | |
---|---|---|---|
CREATE | セキュリティマネージャー | セキュリティマネージャー | 個別のチーム |
APPLY | セキュリティマネージャー | 個別のチーム | 個別のチーム |
-
集中型: 管理者のみがポリシーを管理できます。
CREATE ROLE security_manager;
GRANT CREATE MASKING POLICY ON DATABASE d1 TO ROLE security_manager;
GRANT APPLY ON ALL MASKING POLICIES ON DATABASE d1 TO ROLE security_manager; -
ハイブリッド型: 管理者と他の役割の両方がポリシーを管理できます。
CREATE ROLE security_manager;
GRANT CREATE MASKING POLICY ON DATABASE d1 TO ROLE security_manager;
GRANT APPLY ON ALL MASKING POLICIES ON DATABASE d1 TO ROLE db_owner; -
分散型: ポリシーは他の役割によって管理されます。
CREATE ROLE db_owner;
GRANT CREATE MASKING POLICY ON DATABASE d1 TO ROLE db_owner;
GRANT APPLY ON ALL MASKING POLICIES ON DATABASE d1 TO ROLE db_owner;