USER MANUALS

GET_CATALOG_EFFECTIVE_PERMISSIONS

ストアドプロシージャ GET_CATALOG_EFFECTIVE_PERMISSIONS は、ユーザーに付与されている有効な権限を返します。このプロシージャは、データベースごとに 1 つの行と、ユーザーが権限を持っているエレメントごとに 1 つの行を返します。

重要

このプロシージャは、組織の Active Directory または ID プロバイダーにのみ存在するユーザー (つまり Virtual DataPort に作成されていないユーザー) の権限を返しません。ただし、入力ユーザー名がクエリを実行しているユーザー名と同じ場合を除きます。

CATALOG_PERMISSIONS プロシージャも権限に関する情報を返しますが、結果は異なります。

  • 「CATALOG_PERMISSIONS」は、各ユーザー/ロールに付与されている権限を返します。

  • 「GET_CATALOG_EFFECTIVE_PERMISSIONS」は、ユーザーが各エレメントに対して持っている有効な権限を返します。

たとえば、データベースに対するロール read をユーザーに付与したとします。「CATALOG_PERMISSIONS」は、この権限を示す 1 つの行を返します。この「GET_CATALOG_EFFECTIVE_PERMISSIONS」権限は、このデータベースのエレメントごとに 1 つの行を返します。

構文

GET_CATALOG_EFFECTIVE_PERMISSIONS (
      input_user_name : text
    , input_database_name : text
    , input_check_global_security_policies : boolean )
  • input_user_name (必須): ユーザーの名前。

  • input_database_name (オプション): null の場合、このプロシージャは、ユーザーが権限を持っているすべてのエレメントを返します。 null 以外の場合、このデータベースのエレメントに対するユーザーの権限を返します。

  • input_check_global_security_policies (オプション): デフォルト値は true です。その場合、プロシージャは、制限を計算するために グローバルセキュリティポリシー も確認します。

このプロシージャは、ユーザーが権限を持っているエレメントごとに 1 つの行を返します。各行には、以下のフィールドがあります。

  • username: ユーザーの名前。この値は、常に input_user_name と同じです。

  • globaladmin: input_user_name が管理者の場合は true 、そうでない場合は false

  • dbname: この権限が付与されているデータベースの名前。

  • elementname: この権限が付与されているエレメントの名前。この権限が単一のエレメントではなくデータベースに対して付与されている場合は null です。

  • elementtype: この権限が付与されているデータベースのエレメントのタイプ。想定される値は、 DatabaseData sourceViewProcedure 、 および Web service です。

  • elementsubtype: エレメントタイプが Data source ではない場合は null です。それ以外の場合は、データソースのタイプです。想定される値は、 dfessbasejdbcjsoncustomodbcolapmongodbsalesforcesapbwbapisaperpwsxml です。

  • dbadmindbconnectdbcreatedbcreatedatasourcedbcreatedataservicedbcreateviewdbcreatefolderdbexecutedbwritedbmetadatadbinsertdbdeletedbupdate 、および dbfile: データベースに対して付与できる権限を表します。

  • elementmetadataelementexecuteelementwriteelementinsertelementupdateelementdelete 、および elementindirectaccess: データベースではなく、データベースのエレメントに対して付与できる権限を表します。この行が (個々のエレメントではなく) データベースに対して付与された権限を表す場合は null です。

  • columnpermissions: 行が列権限を持つビューに対して付与されている権限を表す場合、これは null ではありません。この場合、このフィールドには、投影可能なフィールドのコンマ区切りリストが含まれます。

  • rowpermissions: この行がビューに対する権限を表しており、このビューに対する行制約がユーザーに設定されている場合は true 、そうでない場合は false

  • custompermissions: この行がビューに対する権限を表しており、このビューに関するカスタムポリシーがユーザーに適用されている場合は true 、そうでない場合は false

注釈

columnpermissionsrowpermissions 、および custompermissions 列は、以下の構成プロパティの影響を受けません。

com.denodo.vdb.catalog.user.User.enableCheckViewRestrictionAlways.

これは、この列の値が null または false であっても、このプロパティが true に設定されている場合は、一部の制約がエレメントに適用される可能性があることを意味します。

このプロパティの意味については、「 列権限 」で説明しています。

注釈

このプロシージャを実行する場合、実行時ユーザーセッションは使用できません。したがって、このプロシージャは、 グローバルセキュリティポリシー を確認する際、ユーザーセッションの属性を使用する条件は満たされているものと常に仮定します。

必要な権限

このプロシージャの結果は、それを実行するユーザーの権限によって異なります。

  • 管理者: このプロシージャは、任意のユーザーの権限に関する情報を返します。

  • その他のユーザー (データベースの管理者を含む): このプロシージャは、このプロシージャを実行しているユーザーに付与されている権限に関する情報のみを返します。

このプロシージャは、以下のいずれの場合もエラーを返します。

  1. 入力パラメータ input_user_name が存在しないユーザー名である場合。

  2. 入力パラメータ input_database_name が存在しないデータベースである場合。

  3. 管理者以外のユーザーが、別のユーザーに付与されている権限をリクエストする場合。

  4. 入力ユーザーが Kerberos または LDAP のユーザー (つまり Virtual DataPort で作成されていないユーザー) であり、このプロシージャを実行するユーザーではない場合。この場合、このユーザーが存在しないことを示すエラーが返されます。

Add feedback