ユーザと権限の管理

ユーザの管理

Objective

After completing this lesson, you will be able to ユーザー管理と管理について説明してください。

ユーザライフサイクル管理

この図は、ユーザ管理プロセス (それぞれのロールおよび権限を持つユーザの作成、管理、および権限) を示しています。

SAP HANA では、以下の理由でセキュリティコンセプトが必要です。

  • データベース管理を熟練した(かつ権限を与えられた)人々に限定するため

  • SAP ERP テーブルへのアクセスを制限する

  • SAP HANA データモデルの編集をモデルの所有者に制限する

SAP HANA では、ユーザ管理は以下のように重要な役割を果たすため、セキュリティは重要です。

  • 複数のフロントエンドツールで SAP HANA への直接アクセスが提供されます。

  • オブジェクトおよびデータモデルコンテンツへのアクセスは、SAP HANA 内で制御する必要があります。

  • 情報利用者は、SAP HANA の指定ユーザを必要とします。

セキュリティコンセプトの例外は、利用者がユーザ管理を必要としない場合です。これは、以下の状況で発生します。

  • データへのアクセスを制御する必要はありません。

  • すべてのデータアクセスは SAP Business Intelligence (BI) セマンティックレイヤを介して行われ、セキュリティは SAP BusinessObjects Enterprise に実装されます。

ユーザタイプ

ユーザ管理者は、SAP HANA でユーザを作成および設定します。ユーザ管理者には、すべてのユーザの管理権限を付与するシステム権限 USER ADMIN があります。

SAP HANA では、データベースアカウントの登録時に 2 つの異なるタイプのユーザが存在します。

  • 実際のユーザに対応するデータベースユーザ

  • テクニカルデータベースユーザ

データベースユーザは、標準ユーザまたは制限付ユーザのいずれかとして登録されます。

データベース管理者は、SAP HANA データベースで作業するすべてのユーザに対してデータベースユーザを登録します。実際のユーザに対応するデータベースユーザは、その個人が企業を退職した場合に削除されます。これは、退職者が所有しているデータベースオブジェクトも自動的に削除され、付与されている権限が自動的に取り消されることを意味します。

制限付ユーザは、最初は標準データベースユーザと比べて以下のように制限されています。

  • 独自のデータベーススキーマでオブジェクトを作成する権限がないため、データベースにオブジェクトを作成することはできません。

  • 標準 PUBLIC ロールが付与されていない (付与できない) ため、データベース内のデータを表示できません。

  • HTTP/HTTPS を使用したデータベースへの接続のみが可能です。

制限されたユーザがアプリケーションを使用できるようにするには、必要なアプリケーション固有のロールを付与します。最初、制限ユーザは HTTP または HTTPS を使用してのみデータベースに接続できます。

注記

制限付きユーザが ODBC または JDBC 経由で接続できるようにするには、ODBC または JDBC アクセスを明示的に有効にします。

テクニカルデータベースユーザ

テクニカルデータベースユーザは、実際のユーザに対応していないため、ユーザが組織を退職しても削除されません。通常、このタイプのユーザは、オブジェクトの登録や特定のアプリケーションに対する権限の付与など、定期的に実行される管理タスクで使用されます。テクニカルユーザには、ユーザ SYS および _SYS_REPO のように標準で使用できるものもあります。特定のシナリオにアプリケーション固有のユーザが必要な場合、追加の使用ケースを提示することができます。

注記

ユーザタイプの詳細については、SAP HANA プラットフォーム向け SAP HANA セキュリティガイドの SAP HANA ユーザ管理 (SAP HANA User Management) を参照してください。

技術的には、これらのユーザタイプは同じです。異なるのはコンセプトのみです。

実際のユーザに対応するデータベースユーザは、さまざまなタスクに従ってグループ化することができます (この章のレッスン "ユーザグループ" を参照)。

ユーザ管理ツール

ユーザ管理は、SAP HANA コックピットを使用して設定されます。

ソースシステムからの既存の権限の複製はありません。

この図は、SAP HANA コックピット、コマンドラインツール、および SAP Identity Management 機能の概要を示しています。

すべてのユーザ管理機能は、SQL 要求を使用してコマンドラインから実行することもできます。これは、自動化された処理のスクリプトを使用する場合に便利です。

SAP Identity Management では、SAP HANA データベースでのユーザプロビジョニングの追加サポートが提供されます。

SAP Identity Management 7.2 SP 3 には、SAP HANA データベースへのコネクタ (IDM コネクタ) が含まれています。SAP Identity Management では、SAP HANA データベースで以下のアクションを実行することができます。

  • ユーザアカウントの作成および削除

  • ロールの割当

  • ユーザのパスワードの設定

SAP Identity Management および IDM コネクタの詳細については、SAP Community ()https://www.sap.com/community/topic/identity-management.html を参照してください。

ユーザ登録

SAP HANA データベースを直接使用するすべてのユーザに対して、標準データベースユーザを登録することができます。ユーザの作成時に、ユーザの認証方法も設定します。これは、SAP HANA コックピットのUserページで実行できます。

この図は、ユーザーアカウントを作成または管理するためのフォームフィールドを含むユーザー管理インターフェイスを示しています。

ユーザを登録するとき、以下のプロパティを指定します。

  • ユーザ名

    一意のユーザ名を入力します。

  • オプション: ユーザグループ

    ユーザに割り当てられたユーザグループを入力します。

  • オプション: 電子メールアドレス

    ユーザの電子メールアドレスを入力します。

  • オプション:有効期間(適切なタイムゾーンを含む)

    ユーザの有効期間を入力します。ユーザアカウントが現在有効期間内にない場合、そのユーザは無効であり、ログオンできません。有効期間が設定されていない場合、ユーザは無期限に有効になります。

  • オプション: 独自のスキーマでのオブジェクトの登録

    ユーザが自分のデータベーススキーマでオブジェクトを作成できないようにします。

  • オプション: PUBLIC ロール。

    ユーザに標準 PUBLIC ロールが付与されないようにします。

    PUBLIC ロールには、フィルタが適用されたシステムビューへの読込専用アクセスの権限が含まれています。特定のビューのデータを表示するには、そのビューに対する SELECT 権限も必要です。

  • オプション: ODBC または JDBC アクセスを無効にします。

    ユーザが ODBC または JDBC 経由でデータベースに接続できるかどうかを示します。デフォルトでは、ODBC および JDBC アクセスは標準ユーザに対して有効になっており、制限付きユーザに対しては無効になっています。つまり、制限付ユーザは HTTP または HTTPS を介してのみ接続できます。

  • オプション: コメント

    コメントを入力してください。

  • オプション: ユーザの権限が LDAP グループメンバーシップに基づいている場合は、権限モードを LDAP に設定します。

  • ユーザの認証方法を指定します。

追加のユーザパラメータ

クライアントアプリケーションの追加のユーザプロパティを設定できます。デフォルトでは、以下のカスタムユーザプロパティを利用できます。

  • LOCAL

    これはユーザのロケールです。

  • PRIORITY

    これは、スレッドスケジューラがユーザが実行した文を処理する優先度です。優先度は 0-9 の範囲にすることができ、9 が最高の優先度を表します。5 がデフォルトの優先度です。

  • ステートメントメモリ制限

    これは、ユーザが実行する文で使用できる最大メモリ (GB 単位) です。

  • ステートメントスレッド制限

    ユーザが実行する文で使用できるスレッドの最大数です。

  • TIME ZONE

    これはユーザのタイムゾーンです。ロケールおよびタイムゾーンの標準データベース形式がサポートされています。

ユーザの管理

可能なログオン試行の失敗の最大回数を管理できます。この数に達すると、ユーザはただちにロックされます。

パラメータはですmaximum_invalid_connect_attempts。

デフォルトでは、無効なログオン試行の最大回数は 6 に設定されています。1 以上の値を入力する必要があります。

管理者は、コマンドを使用してALTER USER <user_name> RESET CONNECT ATTEMPTS無効なログオンの数をリセットすることができます。

無効なログオン試行の後に最初にログオンに成功した際に、以下を示すエントリが INVALID_CONNECT_ATTEMPTS ビューに作成されます。

  • 最後のログオンの成功以降の無効なログオン試行回数

  • 最後にログオンに成功した時刻

管理者は、次のコマンドを使用して無効なログオン試行情報を削除できます。

Code Snippet
1
ALTER USER <user_name> DROP CONNECT ATTEMPTS

ユーザパスワードの管理

この図は、SAP ユーザのパスワード管理ルール (初期変更、必須無効化、制限、無効化、および再有効化手順) の概要を示しています。

このパラメータは、force_first_password_change初回ログオン時にユーザが初期パスワードを即時に変更する必要があるかどうかを定義します。

このパラメータが true に設定されている場合でも、ユーザは初期パスワードでログオンすることができます。ただし、アクションを実行するたびに、パスワードを変更する必要があることを示すエラーメッセージが返されます。その場合、次のコマンドのみを実行できます。

Code Snippet
1
ALTER USER <current_user> PASSWORD <password>

このパラメータが false に設定されている場合、ユーザは初回ログオン時に初期パスワードをすぐに変更する必要はありません。ただし、ユーザがパラメータmaximum_unused_initial_password_lifetimeで指定された日数の前にパスワードを変更しない場合は、パスワードの有効期限が切れるため、ユーザ管理者がパスワードをリセットする必要があります。

ユーザ管理者 (つまり、システム権限 USER ADMIN を持つユーザ) は、次のコマンドを使用して、いつでもユーザにパスワードの変更を強制できます。

Code Snippet
1
ALTER USER <user_name> FORCE PASSWORD CHANGE

パスワードポリシーの SQL 文

ユーザ管理者は、SAP HANA コックピットのユーザ管理アプリまたは以下の SQL コマンドで、個別ユーザに対してこのパスワードポリシー設定を上書きすることができます。

  • Code Snippet
    1
    CREATE USER <user_name> PASSWORD <password> [NO FORCE_FIRST_PASSWORD_CHANGE]
  • Code Snippet
    1
    Alter USER <user_name> PASSWORD <password> [NO FORCE_FIRST_PASSWORD_CHANGE]

このオプションは、以下の状況で役立ちます。

  • 生成されたパスワードを持つ新しいテクニカルユーザアカウント (対話的に入力することを意図していません)

  • ID 管理システムで生成および管理される新規ユーザ

必須の定期パスワード変更から特定のユーザを除外

接続のために、テクニカルユーザを作成する場合があります。このテクニカルユーザのパスワードは絶対に変更しないでください。以下の SQL コマンドを使用して、必須の定期的なパスワード変更を再度有効化することができます。

  • Code Snippet
    1
    ALTER USER <user_name> DISABLE PASSWORD LIFETIME
  • Code Snippet
    1
    ALTER USER <user_name> ENABLE PASSWORD LIFETIME

ユーザの無効化または再有効化

セキュリティ上の理由でユーザが自動的に無効化されることがあります。たとえば、無効なログオン認証情報を複数回指定することでパスワードポリシールールに違反した場合や、パスワードの有効期限が切れた場合などが挙げられます。ただし、たとえば、従業員が一時的に退職した場合やセキュリティ違反が検出された場合などは、ユーザ管理者としてユーザの無効化が必要になる場合があります。

ユーザアカウントを無効化した後、管理者がユーザのパスワードをリセットするか、ユーザを再度有効化するまで、ユーザは SAP HANA データベースにログオンできません。

ユーザを明示的に無効化した場合や、ユーザによる無効なログオン試行回数が多すぎる場合などに、ユーザ管理者がユーザを再有効化する必要が生じることがあります。

以下のようにユーザを無効化または有効化することができます。

  • SAP HANA cockpit User ページで、

  • SQL コマンドを使用

ユーザ SYSTEM の管理

SYSTEM データベースユーザは、SAP HANA データベースの登録時に登録される初期ユーザです。

SYSTEM はデータベースのスーパーユーザです。SYSTEM には、他のデータベースユーザの登録、システムテーブルへのアクセスなどを行うことができる取消不能のシステム権限があります。また、データベース作成直後に管理ツール SAP HANA コックピットを使用できるように、SYSTEM にはこのユーザでコックピットを初めて開いたときに、複数のロールが自動的に付与されます。ただし、ユーザ SYSTEM は、SAP HANA リポジトリに登録されたオブジェクトに自動的にはアクセスできないことに注意してください。

独自の管理者の登録およびユーザ SYSTEM の無効化

マルチテナントデータベースコンテナを持つシステムでは、システムデータベースの SYSTEM ユーザには、たとえば、データベースの登録および削除、データベースの設定 (*.ini) ファイルの変更、およびデータベース固有のデータバックアップの実行などの、テナントデータベースを管理する追加権限があります。

注意

本稼働システムの日次アクティビティには SYSTEM を使用しないでください。代わりに、これを使用して、職務セットに必要な最小限の権限 (ユーザ管理、システム管理など) を持つデータベースユーザを登録します。その後、SYSTEM を無効化します。

SYSTEM ユーザのパスワードが失われた場合は、オペレーティングシステムユーザ (<sid>admユーザ) を使用してパスワードをリセットすることができます。

SYSTEM ユーザの管理

SYSTEM ユーザは以下のように管理できます。

  • SYSTEM ユーザの無効化

    ALTER USER SYSTEM DEACTIVATE USER NOW

  • SYSTEM ユーザをロックから除外

    パラメータ: password_lock_for_system_user

  • SYSTEM ユーザのパスワードのリセット

    • システムデータベースの SYSTEM ユーザパスワードのリセット

      <sid>adm オペレーティングシステムユーザを使用したリセット

    • テナントデータベースの SYSTEM ユーザパスワードのリセット

      システム管理者は、システムデータベースからリセットすることができます。テナントデータベースを停止し、以下のコマンドを実行します。ALTER DATABASE <database_name> SYSTEM USER PASSWORD <new_password>

パラメータ password_lock_for_system_user では、ログオン試行失敗が最大回数 (maximum_invalid_connect_attempts) に達した後、ユーザ SYSTEM が指定されたロック時間 (password_lock_time) の間ロックされるかどうかを指定します。

SYSTEM ユーザの無効化

SYSTEM はデータベースのスーパーユーザです。SYSTEM には、他のデータベースユーザの登録、システムテーブルへのアクセスなどを行うことができる取消不能のシステム権限があります。本稼働システムの日次アクティビティには SYSTEM を使用しないでください。代わりに、これを使用して、職務セットに必要な最小限の権限 (ユーザ管理、システム管理など) を持つデータベースユーザを登録します。その後、SYSTEM を無効化します。

たとえば、SAP HANA コックピットの SQL コンソールで以下の文を実行します。

ALTER USER SYSTEM DEACTIVATE USER NOW

SYSTEM ユーザが無効化され、SAP HANA データベースに接続できなくなります。

ユーザのシステムビューでこれに該当することを確認できます。SYSTEM ユーザについては、列 USER_DEACTIVATED、DEACTIVATION_TIME、および LAST_SUCCESSFUL_CONNECT の値をチェックします。

注記

SYSTEM ユーザは、無効化されている場合でも、緊急ユーザとして使用することができます。システム権限 USER ADMIN を持つすべてのユーザは、文を使用してALTER USER SYSTEM ACTIVATE USER NOW再有効化できます。管理者が秘密裏にこれを行わないようにするには、監査ポリシーを作成して ALTER USER 文を監視します。

SYSTEM ユーザのパスワードのリセット

システムデータベースとすべてのテナントデータベースには、それぞれ独自の SYSTEM ユーザが存在します。システム管理者は、SYSTEM ユーザのパスワードが回復不能な形で失われた場合、リセットすることができます。

テナントデータベースの SYSTEM ユーザパスワードのリセット

テナント: システムユーザパスワードのリセット

テナントデータベース内の SYSTEM ユーザのパスワードが不明な場合、システムデータベースからリセットできます。データベース管理者には、テナントデータベースの SYSTEM ユーザのパスワードをリセットするためのオプションが 2 つあります。

SAP HANA コックピット
Database Management アプリケーションにナビゲートし、テナントデータベースを停止します。Tenant Actions メニューから、Reset SYSTEM Password オプションを選択します。
SQL
Database Explorer - SQL Console を使用して SYSTEMDB に接続し、以下の SQL コマンドを使用してテナントデータベースを停止します。
Code Snippet
1
ALTER SYSTEM STOP DATABASE <database_name>
データベースが停止したら、以下の SQL コマンドを使用して SYSTEM パスワードをリセットします。
Code Snippet
1
ALTER DATABASE <database_name> SYSTEM USER PASSWORD <new_password>
SYSTEM ユーザのパスワードがリセットされ、テナントデータベースが起動します。

SYSTEM ユーザで次回ログオンすると、テナントデータベースのパスワードポリシーに従ってパスワードを変更するように求められます。

SYSTEM ユーザが以前に無効化、ロック、または期限切れになっていた場合は、再度有効化されます。無効化することをお奨めします。

監査が有効な場合、パスワード変更はシステム監査証跡とテナントデータベース監査証跡の両方に自動的に記録されます。

注記

SYSTEM またはシステム権限 USER ADMIN を持つ別のユーザとしてログオンできる場合は、ここで説明する手順を使用して SYSTEM ユーザのパスワードを変更しないでください。代わりに、テナントデータベースに直接ログオンし、コマンドALTER USER SYSTEM PASSWORD <new_password>を実行するか、SAP HANA コックピットを使用してパスワードを変更します。

システムデータベースの SYSTEM ユーザパスワードのリセット

SYSTEMDB の SYSTEM ユーザパスワードが失われた場合、オペレーティングシステム管理者として、ネームサーバを緊急モードで起動することによりパスワードをリセットできます。

SYSTEM ユーザパスワードをリセットするには、オペレーティングシステムユーザ <sid>adm の認証情報が必要です。システムデータベースのネームサーバが実行されているサーバにログオンし、SAP HANA 管理ガイド - システムデータベースでの SYSTEM ユーザパスワードのリセット (Reset the SYSTEM User Password in the System Database) で説明されているコマンドを実行します。

この手順の実行後に、SYSTEM ユーザのパスワードがリセットされます。このユーザで次回ログオンするとき、システムデータベースのパスワードポリシーに従ってパスワードを変更する必要があります。

すでに SYSTEM ユーザを無効化していた場合は、そのユーザも再有効化されます。つまり、このユーザを再度無効化する必要があります。