ページの先頭行へ戻る
Enterprise Postgres 15 セキュリティ運用ガイド

B.7 定義の参照およびシステムカタログとの比較を支援する関数

関数名

戻り値

説明

pgx_get_attribute_of_objects(confidential_matrix_name varchar)

setof record

指定した機密マトリクスに登録されているすべての機密オブジェクトに関して、機密マトリクスで規定されている属性と、実際にデータベース上で設定されている属性の表を返却します。表の形式は、“pgx_get_attribute_of_objectsが返却する表”を参照してください。

指定された機密マトリクスの機密管理ロールだけが、この関数を実行できます。

pgx_get_attribute_of_roles(confidential_matrix_name varchar)

setof record

指定した機密マトリクスに登録されているすべてのロールについて、機密マトリクスにて規定されている属性と、実際にシステムカタログで設定されている属性の表を返却します。表の形式は、“pgx_get_attribute_of_rolesが返却する表”を参照してください。

指定された機密マトリクスの機密管理ロールだけが、この関数を実行できます。

pgx_get_privileges_on_level_and_group(confidential_matrix_name varchar, confidential_level_name varchar, confidential_group_name varchar)

setof record

指定された機密レベルに登録されている機密オブジェクトと、指定された機密グループに登録されているロールの組み合わせについて、以下を比較できるような一覧の表を返却します。表の形式は、“pgx_get_privileges_on_level_and_groupが返却する表”を参照してください。

  • 指定されたロールに付与されるべき、機密権限の設定値によって規定された権限

  • 実際のシステムカタログで付与されている権限

指定された機密マトリクスの機密管理ロールだけが、この関数を実行できます。

pgx_get_privileges_on_object(confidential_matrix_name varchar, object_name json)

setof record

指定された機密オブジェクトについて、以下を比較できるような一覧の表を返却します。表の形式は、“pgx_get_privileges_on_objectが返却する表”を参照してください。

  • すべてのロールに付与されるべき、機密権限の設定値によって規定された権限

  • 実際のシステムカタログで付与されている権限

指定された機密マトリクスの機密管理ロールだけが、この関数を実行できます。

pgx_get_privileges_on_role(confidential_matrix_name varchar, role_name json)

setof record

すべての機密オブジェクトについて、以下を比較できるような一覧の表を返却します。表の形式は、“pgx_get_privileges_on_roleが返却する表”を参照してください。

  • 指定されたロールに付与されるべき、機密権限の設定値によって規定された権限

  • 実際のシステムカタログで付与されている権限

指定された機密マトリクスの機密管理ロールだけが、この関数を実行できます。

pgx_get_privileges_on_matrix(confidential_matrix_name varchar)

setof record

指定された機密マトリックスに登録されたすべてのオブジェクトについて、以下を比較できるような一覧の表を返却します。表の形式は、“pgx_get_privileges_on_matrixが返却する表”を参照してください。

  • 機密マトリクスに登録されたすべてのロールに付与されるべき、機密権限の設定値によって規定された権限

  • 実際のシステムカタログで付与されている権限

指定された機密マトリクスの機密管理ロールだけが、この関数を実行できます。

pgx_get_attribute_of_objectsが返却する表

カラム名

意味

matrix_name

varchar(63)

機密マトリクス名

confidential_level_name

varchar(63)

機密レベル名

object_type

text

機密オブジェクトの種別

object_schema

name

機密オブジェクトのスキーマ名

object_table

name

機密オブジェクトのテーブル名

object_name

text

機密オブジェクトの名前

rowset_expression

json

機密オブジェクトが行の場合の条件式

encrypt_on_matrix

text

機密マトリクスで規定される暗号化手法と強度

encrypt_on_object

text

機密オブジェクトの実際の暗号化手法と強度

pgx_get_attribute_of_rolesが返却する表

カラム名

意味

matrix_name

varchar(63)

機密マトリクス名

confidential_group_name

varchar(63)

機密グループ名

role_name

name

ロールの名前

confidential_group_role

bool

機密グループロールであるか否かを示します。機密グループロールであるならば、trueです。

superuser_on_matrix

bool

機密マトリクスで規定されるSUPERUSER属性

superuser_on_role

bool

ロールの実際のSUPERUSER属性

createdb_on_matrix

bool

機密マトリクスで規定されるCREATEDB属性

createdb_on_role

bool

ロールの実際のCREATEDB属性

createrole_on_matrix

bool

機密マトリクスで規定されるCREATEROLE属性

createrole_on_role

bool

ロールの実際のCREATEROLE属性

replication_on_matrix

bool

機密マトリクスで規定されるREPLICATION属性

replication_on_role

bool

ロールの実際のREPLICATION属性

bypassrls_on_matrix

bool

機密マトリクスで規定されるBYPASSRLS属性

bypassrls_on_role

bool

ロールの実際のBYPASSRLS属性

pgx_get_privileges_on_level_and_group、pgx_get_privileges_on_object、pgx_get_privileges_on_roleおよびpgx_get_privileges_on_matrixが返却する表

カラム名

意味

matrix_name

varchar(63)

機密マトリクス名

confidential_level_name

varchar(63)

機密レベル名

confidential_group_name

varchar(63)

機密グループ名

object_type

text

機密オブジェクトの種別

object_scheme

name

機密オブジェクトのスキーマ名

object_table

name

機密オブジェクトのテーブル名

object_name

text

機密オブジェクトの名前

role_name

name

ロール名

privilege_list_on_matrix

text[]

機密マトリクスの設定により規定されている権限をカンマ区切りで出力する。

privilege_list_on_object

text[]

機密マトリクスの設定により規定されている権限をカンマ区切りで出力する。

policy_name

name

機密オブジェクトがrowset型ではない場合にはNULL。

rowset型の場合にはrowsetの名前(注1)

policy_setting_on_matrix

jsonb

機密オブジェクトがrowset型ではない場合にはNULL。

rowset型の場合には、機密マトリクスに設定されているrowsetのポリシー情報(注1)

policy_setting_on_policy

jsonb

機密オブジェクトがrowset型ではない場合にはNULL。

Rowset型の場合には、実際のポリシーに設定されている行のポリシー情報(注1)

注1: rowset型の機密オブジェクトを追加するときには、複数の権限を一度に設定できますが、この表では一つの行で表現されません。例えば、SELECT権限とDELETE権限を設定したならば、SELECT権限を表す行と、DELETE権限を表す行とが出力されます。なぜならば、rowset型のアクセス制御は、PostgreSQLの行レベルセキュリティのPOLICYを使っているからです。この仕様では、SELECT権限のためのPOLICYと、DELETE権限のためのPOLICYは異なります。