On this page:

SNP CrystalBridge® Monitoring の許可

ユーザーに SNP CrystalBridge® Monitoring ツールの起動を許可するには、ユーザーを /DVD/MON_ADMIN ロールに追加します。このロールは、SNP CrystalBridge® Monitoring トランスポート要求に含まれています。

ABAP エージェント認証

SAP ユーザーに ABAP エージェントの管理を許可するには、ユーザーを /DVD/APPD_ADMIN ロールに追加します。 

レガシーロール /DVD/APPD_USER は管理者ロールのサブセットとして存在し、特定の ABAP エージェントと SAP コンポーネントの実行を許可します(開始、停止、SQL トレースの収集、外部システムからの AppDynamics RFC 関数モジュールの呼び出しなど)。ユーザーロールは、RFC コール中に使用されるモニター対象ユーザーおよびテクニカルユーザーを対象としています。これらのロールは、AppDynamics ABAP エージェントのトランスポート要求に含まれています。

ABAP エージェントバージョン 4.5.1911 以降、新しい基本および複合権限ロールを使用できます。複合ロールは、関連するすべての基本ロールで構成され、ユーザーロールを置き換えることを目的としています/DVD/APPD_USER:

  • /DVD/APPD_JAVA
    • Java からの RFC コール中(JCo 経由)に使用されるすべての SAP ユーザーおよびテクニカルユーザーを対象としています。
    • 以下に示すすべての基本ロールが含まれます
  • /DVD/APPD_ABAP
    • Java からの RFC コール中(JCo 経由)に関係のない他のすべてのユーザー(非テクニカルおよびテクニカル)を対象としています。
    • 次を除くすべての基本ロールが含まれます。 /DVD/APPD_RFC_JAVA

特定の領域に必要な権限を提供するために、基本ロールが存在します。複合ロールのいずれかを使用できない場合は、代わりに特定の基本ロールを選択できますが、これにより、特定の方法では ABAP エージェントの機能が制限されます。基本ロールを省略した場合の影響については、[Not assigned] の箇条書きで説明します。 

  • /DVD/APPD_RFC_ABAP
    • Authorization object:RFC アクセスの許可チェック(S_RFC)
      • Activity:実行(16)
      • Name of RFC to be protected:/DVD/*
      • Type of RFC object to be protected:機能グループ(FUGR)
    • Purpose:割り当てられたユーザーは /DVD/* 汎用グループから RFC 汎用モジュールを呼び出すことができます
    • Needed for:ABAP エージェント間の RFC 相関
    • User groups:RFC コール中に使用されるユーザー、または RFC 宛先に割り当てられるユーザー。信頼関係を持つ RFC 宛先が使用される場合のすべてのユーザー
    • Not assigned:ABAP エージェントのビジネストランザクションからの RFC exit コールはランタイムエラーを生成しますが、エンドユーザーには影響しません
    • Fallback:このロールは ABAP エージェントのスムーズな動作に必要ですが、ロールがない場合の影響は、自動一時 RFC 宛先ブラックリスト登録によって軽減されます
  • /DVD/APPD_RFC_JAVA
    • Authorization object:RFC アクセスの許可チェック(S_RFC)
      • Activity:実行(16)
      • Name of RFC to be protected:SRFC、SUNI、SYST
      • Type of RFC object to be protected:機能グループ(FUGR)
    • Purpose:割り当てられたユーザーは、汎用グループ SRFC、SUNI、SYST から RFC 汎用モジュールを呼び出すことができます
    • Needed forJCo プラグインを使用する Java エージェントと ABAP エージェント間の RFC 相関
    • User groups:RFC コール中に使用されるユーザー、または JCo を使用して Java システムから呼び出される RFC 宛先に割り当てられるユーザー
    • Not assigned:Java エージェントのビジネストランザクションからの RFC exit コールはランタイムエラーを生成しますが、エンドユーザーには影響しません
    • Fallback:このロールは JCo プラグインと ABAP エージェントのスムーズな動作に必要ですが、ロールがない場合の影響は、自動一時 RFC 宛先ブラックリスト登録によって軽減されます
  • /DVD/APPD_TRACE_SQL
    • Authorization object:システム許可(S_ADMI_FCD)
      • System administration function:トレーススイッチの変更(ST0M)、トレースの分析(ST0R)
    • Purpose:割り当てられたユーザーは SQL トレースを開始、停止、および処理できます(ST05)
    • Needed for:ビジネス トランザクション スナップショットの上位 5 つの SQL ステートメント
    • User groups:すべてのユーザー
    • Not assigned:完全なビジネス トランザクション スナップショットに上位 5 つの SQL ステートメントが含まれていない可能性があります。アプリケーションログのエラーメッセージが書き込まれます
    • Fallbackスナップショット設定の [Include SQL trace into snapshots ] のチェックボックスをオフにしますプライマリデータベースが HANA である場合、[Include SQL trace into snapshots] と [Always use HANA expensive statements] の両方をオンにして ST05 トレースを完全に省略できます
  • /DVD/APPD_TRACE_ABAP_AUTO
    • Authorization object:ファイルアクセスの許可(S_DATASET)
      • Activity:すべてのアクティビティ
      • Physical file name:*
      • Program Name with Search Help:CL_ATRA_TRACE_FILE============CP
    • Purpose:割り当てられたユーザーは、ABAP エージェントによって生成された ABAP トレース(SAT)ファイルを削除できます
    • Needed for:ビジネス トランザクション スナップショットの上位 5 つの ABAP ステートメントまたはコールグラフを収集した後のハウスキーピング
    • User groups:すべてのユーザー
    • Not assigned:ABAP エージェントによって生成された ABAP トレースファイルは、ビジネストランザクションの終了時に削除されません
    • Fallback/DVD/APPD_TRACE_AUTO が使用できない場合、ロール /DVD/APPD_TRACE_ABAP_MANUAL を使用し、ロールの長いテキストで説明されている必要な手動手順を実行します
  • /DVD/APPD_TRACE_ABAP_MANUAL
    • Authorization object:ABAP/4 を介したファイルシステムアクセス(S_PATH)
      • Activity:変更(02)、表示(03)、削除(06)、読み取り(33)、書き込み(34)
      • Authorization group for ABAP/4:<お客様が定義します。ロールの説明のガイドを参照してください。>
    • Purpose:割り当てられたユーザーは、ABAP エージェントによって生成された ABAP トレース(SAT)ファイルを削除できます
    • Needed for:ビジネス トランザクション スナップショットの上位 5 つの ABAP ステートメントまたはコールグラフを収集した後のハウスキーピング
    • User groups:すべてのユーザー
    • Not assigned:ABAP エージェントによって生成された ABAP トレースファイルは、ビジネストランザクションの終了時に削除されません
    • Fallback/DVD/APPD_TRACE_ABAP_MANUAL が使用できない場合、ABAP エージェントによって生成されたトレースファイルは、ABAP エージェントのハウスキーピングジョブによって毎日自動的に削除されます

      Big SAP systems and ABAP trace files

      数百人のアクティブユーザーがいる SAP システムでは大量のトラフィックが生成され、多数の ABAP トレースファイルが生成される可能性があり、毎日のハウスキーピングジョブでは不十分な場合があります。この場合、大規模な SAP システムでこのフォールバック ソリューションに依存することは推奨されません。権限ロール /DVD/APPD_TRACE_ABAP_AUTO または /DVD/APPD_TRACE_MANUAL のいずれかを使用してください。これらの要件のいずれも満たせない場合は、ABAP トレース機能を使用しないことをお勧めします。

ロールプロファイル

すべての /DVD/APPD* 許可ロールに、現在のロールバージョンのアクティブな生成プロファイルがあることを確認します。これは、[Authorizations] タブの t-code PFCG で確認および調整できます。

カスタム許可拡張スポット

カスタム許可チェックの拡張スポットは、ABAP エージェントバージョン 21.2.0 以降で使用できます。このスポットは、ABAP エージェントの次の領域で使用できます。

  • すべての ZDVD_APPD コマンドの SXPG/SM49 OS コマンド許可チェック
  • ローカル HTTP SDK のインストールおよびローカルログファイルへのアクセスに使用されるファイルアクセスサービス
  • NetWeaver Gateway のインストゥルメンテーション。「NetWeaver Gateway のインストゥルメント化」を参照してください。

個々の拡張スポットは、拡張スポット /DVD/APPD_EH_BADI_CHECKS の下にグループ化されます。上記の領域で許可チェックを微調整するための拡張スポットを実装します。

実装例

カスタム許可拡張スポットを実装するには、次の手順を実行します。

  1. [package /DVD/APPD_API] に移動します。 
  2. [Enhancements] および [Enhancement Spots] フォルダを展開します。 
  3. [/DVD/APPD_EH_BADI_CHECKS] をダブルクリックします。
  4. いずれかの BAdI 定義を右クリックし、[Create BAdI implementation] を選択します。[BAdI Documentation] ボタンをクリックして詳細を表示することもできます。
  5. カスタムの [Enhancement Implementation] の名前と簡単な説明を入力し、ポップアップを確認します。この開発を保存するパッケージとトランスポート要求を選択します。
  6. カスタムの [BAdI Implementation] の名前、カスタムの [Implementing Class] の名前、および簡単な説明を入力します。この開発を保存するパッケージとトランスポート要求を選択します。
  7. カスタムの [BAdI Implementation] ノードを展開し、[Implementing Class] をダブルクリックします。 
  8. 実装するメソッド(...~COMMAND_CHECK)をダブルクリックし、メソッド実装のポップアップを確認します。これにより、カスタムコードを入力できるクラスビルダー UI が開きます。

    これにより、カスタムコードを入力できるクラスビルダー UI が開きます。

Custom command check example code

METHOD /dvd/appd_if_badi_cmd_check~command_check.

*  Importing parameters:
*    IV_PROGRAMNAME  TYPE  SXPGCOLIST-OPCOMMAND
*    IV_PARAMETERS   TYPE  SXPGCOLIST-PARAMETERS
*    IV_LONG_PARAMS  TYPE  CHAR1024
*  Exception objects:
*    /DVD/CX_APPD_AUTH_CHECK

* Restrict access to shell command execution
  IF      iv_programname = 'sh'
      OR  iv_programname = 'chmod'
      OR  iv_programname = 'mkdir'.

*   Allow HTTP SDK start / stop / status commands
    IF iv_parameters CS '/opt/appdynamics/appdhttpsdk/runAppdHttpSDK'.
      RETURN.
*   Path to HTTP SDK start-up script is not in parameters -&gt; check failed
    ELSE.
      RAISE EXCEPTION TYPE /dvd/cx_appd_auth_check
        EXPORTING
          textid = /dvd/cx_appd_auth_check=&gt;auth_check_failed.
    ENDIF.

* Prevent execution of any other command
  ELSE.
    RAISE EXCEPTION TYPE /dvd/cx_appd_auth_check
      EXPORTING
        textid = /dvd/cx_appd_auth_check=&gt;auth_check_failed.
  ENDIF.

ENDMETHOD.
TEXT

Example code for specific action handling

METHOD /dvd/appd_if_badi_gen_check~action_check.

*  Importing parameters:
*    IV_ACTION  TYPE CLIKE
*    IV_OBJECT  TYPE CLIKE
*  Exception objects:
*    /DVD/CX_APPD_AUTH_CHECK

* Option to check users
* - functionality guarded by this check is intended for admin users.
  IF sy-uname <> 'ADMIN_USER'. "This is an example user name
    RAISE EXCEPTION TYPE /dvd/cx_appd_auth_check
      EXPORTING
        textid = /dvd/cx_appd_auth_check=>auth_check_failed.
  ENDIF.

* Check based on action
  CASE iv_action.
*   Insterting / removing custom RFC exit-call snippets to program <IV_OBJECT>
    WHEN 'INSTRUMENT_PROGRAM'
      OR 'UNINSTRUMENT_PROGRAM'.

*     Option to restrict this functionality to certain namespaces
      IF iv_object CP 'ZIWFND_*'. "This is an example namespace prefix pattern
        RETURN.
      ENDIF.

*   Read content of directory <IV_OBJECT>
    WHEN 'LIST_FILES'.

*     Option to restrict access to certain directories
      IF    iv_object CS 'appdhttpsdk'. "Example directory name
*        OR iv_object = 'logs' ...
        RETURN.
      ENDIF.

*   Write to file <IV_OBJECT>
    WHEN 'WRITE_FILE'.

*     Option to restrict write access to certain files
      IF iv_object CP '/opt/appdynamics/appdhttpsdk*'. "Example file location
        RETURN.
      ENDIF.

*   Read file <IV_OBJECT>
    WHEN 'READ_FILE'.

*     Option to restrict read access to certain files
      IF iv_object CP '/opt/appdynamics/appdhttpsdk*'. "Example file location
        RETURN.
      ENDIF.

*   Create directory <IV_OBJECT>
    WHEN 'DIR_CREATE'.

*     Option to restrict directory creation
      IF      iv_object CP '/opt/appdynamics/appdhttpsdk*'. "Example file location
*         AND ( iv_object CS 'logs' OR iv_object CS ... )   "specific allowed directory names
        RETURN.
      ENDIF.

*   Unsupported action
*   WHEN OTHERS.

  ENDCASE.

* Auth check failed
  RAISE EXCEPTION TYPE /dvd/cx_appd_auth_check
    EXPORTING
      textid = /dvd/cx_appd_auth_check=>auth_check_failed.

ENDMETHOD.
TEXT

トラブルシューティング

  • User has no permission to do action “X” even though it has the /DVD/APPD_ADMIN role

    • ロール /DVD/APPD_ADMIN がプロファイルを生成していることを確認します。

      1. トランザクション [PFCG] に移動します。

      2. ロール /DVD/APPD_ADMIN を入力し、確認します。

      3. [Authorizations] タブに移動します。

      4. [Display Authorization Data] をクリックします。

      5. トップメニューで [Generate] をクリックします。