カテゴリ:

コンテキスト関数 (セッションオブジェクト)

IS_INSTANCE_ROLE_IN_SESSION

セッションのユーザーのアクティブなプライマリロール階層またはセカンダリロール階層が、指定されたインスタンスロールを継承しているかどうかを検証します。

こちらもご参照ください。

インスタンスロールIS_DATABASE_ROLE_IN_SESSIONIS_ROLE_IN_SESSION

構文

IS_INSTANCE_ROLE_IN_SESSION( '<instance_name>' , '<instance_role_name>' )
Copy

引数

'instance_name'

インスタンスの名前を指定します。

'instance_role_name'

インスタンスロールの名前を指定します。

戻り値

  • セッション内にある現在のユーザーのアクティブな プライマリロールまたはセカンダリロール が、指定されたインスタンスロールを継承する場合は TRUE です。

    DEFAULT_SECONDARY_ROLES 値が ALL の場合は、ユーザーに付与された いずれかの ロールが指定されたインスタンスロールの権限を継承します。

  • 指定されたインスタンスロールがユーザーの現在のプライマリロールまたはセカンダリロールのロール階層にない場合は FALSE です。

セッションの現在のロールが指定されたインスタンスロールを継承しているかどうかを確認します。

USE ROLE my_role;

SELECT IS_INSTANCE_ROLE_IN_SESSION('my_db.my_schema.my_anomaly_detector', 'user');
Copy
+----------------------------------------------------------------------------+
| IS_INSTANCE_ROLE_IN_SESSION('MY_DB.MY_SCHEMA.MY_ANOMALY_DETECTOR', 'USER') |
+----------------------------------------------------------------------------+
| TRUE                                                                       |
+----------------------------------------------------------------------------+