ユーザがクライアントインタフェース (ODBC、JDBC、HTTP など) を使用して SAP HANA データベースにアクセスする場合、データベースオブジェクトに対してデータベース操作を実行できるかどうかは、付与されている権限によって決定されます。

オブジェクト権限
オブジェクト権限を使用すると、テーブルやビューなどのデータベースオブジェクトへのアクセスと変更を行うことができます。オブジェクトタイプに応じて、さまざまなアクション (SELECT、CREATE ANY、ALTER、DROP など) を許可することができます。
SQL 文のタイプ (SELECT、UPDATE、CALL など) ごとに、対応するオブジェクト権限が存在します。ユーザが単純なデータベースオブジェクト (テーブルなど) に対して特定の文を実行する場合は、実際のオブジェクト自体、またはオブジェクトが配置されているスキーマに対して、対応するオブジェクト権限を持っている必要があります。これは、スキーマが他のオブジェクトを含むオブジェクトタイプであるためです。スキーマのオブジェクト権限を持つユーザは、現在スキーマ内にあるすべてのオブジェクトと、今後スキーマで作成されるすべてのオブジェクトに対して自動的に同じ権限を持ちます。
テーブル、ビュー、プロシージャなどのデータベースカタログオブジェクトに対するオブジェクト権限を付与できます。SAP HANA データベースのリポジトリにある開発オブジェクトなど、カタログ外オブジェクトに対するオブジェクト権限を付与することもできます。
オブジェクト権限アクティビティ
オブジェクト権限のアクティビティには、次のものも含まれます。
CREATE ANY
この権限により、すべての種類のオブジェクト、特にテーブル、ビュー、シーケンス、シノニム、SQL スクリプト関数、またはデータベースプロシージャをスキーマに登録することができます。この権限は、スキーマに対してのみ付与できます。
ALL PRIVILEGES
これは、付与者が現在持っており、付与が許可されているすべてのデータ定義言語 (DDL) およびデータ操作言語 (DML) 権限のコレクションであり、この特定のオブジェクトに対して付与できます。このコレクションは、指定された付与者およびオブジェクトについて動的に評価されます。ALL PRIVILEGES は、スキーマ、テーブル、ビュー、またはテーブルデータ型に適用できます。
DROP および ALTER
これらは DDL 権限であり、DROP および ALTER SQL コマンドを許可します。DROP 権限はさまざまなオブジェクトに対して有効ですが、ALTER 権限はシーケンスやシノニムには有効ではありません。これは、登録後に定義を変更できないためです。
SELECT、INSERT、UPDATE および DELETE
これらは DML 権限であり、個別の SQL コマンドが許可されます。SELECT は、関数とプロシージャを除き、あらゆる種類のオブジェクトに対して有効です。ただし、INSERT、UPDATE、DELETE は、スキーマ、テーブル、テーブルデータ型、およびテーブルビューに対してのみ有効です。
INDEX
この特別な DDL 権限は、CREATE INDEX、ALTER INDEX、DROP INDEX コマンドを使用してオブジェクトのインデックスの作成、変更、または取消を許可します。この権限は、スキーマ、テーブルおよびテーブルデータ型にのみ適用できます。
EXECUTE
この特別な DML 権限では、CALLS または CALL コマンドをそれぞれ使用した SQL スクリプト関数またはデータベースプロシージャの実行が許可されます。
注記
SAP HANA で使用可能なオブジェクト権限とそれに関連するオブジェクトについては、SAP HANA セキュリティガイド - オブジェクト権限 (Object Privileges) を参照してください。
システム権限
システム権限によって、一般的なシステムアクティビティが制御されます。これらは主に、スキーマの登録、ユーザおよびロールの登録と変更、データバックアップの実行、ライセンスの管理などの管理目的で使用されます。
システム権限は、主に、以下を含む管理アクションを実行する権限をユーザに付与するために使用されます。
スキーマの作成と削除
ユーザとロールの管理
データバックアップの実行
モニタリングとトレース
ライセンスの管理
System Privilege は、基本的なリポジトリ操作を許可するためにも使用されます。これには、以下の例が含まれます。
コンテンツのインポートとエクスポート
デリバリユニット (DU) の更新
システム権限のタイプ
以下の一覧は、SAP HANA データベースで使用可能なシステム権限の例を示しています。
- ユーザおよびロール。以下が含まれます。
USER ADMIN
この権限は、SQL コマンド CREATE USER、ALTER USER、および DROP USER を使用したユーザの作成と変更を許可します。
ROLE ADMIN
この権限は、CREATE ROLE および DROP ROLE SQL コマンドを使用してロールの作成および削除を許可します。また、SQL コマンド GRANT および REVOKE を使用して、ロールの付与と取消を許可します。
- カタログおよびスキーマ管理。以下が含まれています。
CREATE SCHEMA
この権限は、CREATE SCHEMA SQL コマンドを使用してデータベーススキーマの登録を許可します。
DATA ADMIN
この権限では、すべてのユーザに対し、すべてのシステムビューおよび監視ビューの全コンテンツに対するフィルタリングなしの読込専用アクセスが許可されます。また、SAP HANA データベースですべての DDL コマンドおよび DDL コマンドのみを実行する権限がユーザに付与されます。これらのビューのコンテンツは、ユーザの権限に基づいてフィルタリングされます。
CATALOG READ
この権限では、すべてのユーザに対し、すべてのシステムビューおよび監視ビューの全コンテンツに対するフィルタリングなしの読込専用アクセスが許可されます。これらのビューのコンテンツは、アクセスしているユーザの権限に基づいてフィルタリングされます。
システム管理
これらの権限では、SQL コマンド ALTER SYSTEM を使用して実行可能なさまざまなシステムアクティビティが許可されます。これらの権限は、システムに対する影響レベルが高く、標準のデータベースユーザ向けの設計ではありません。これらの権限を付与する場合は、注意して続行してください (たとえば、サポートユーザまたはロールにのみ権限を付与します)。
データのインポートとエクスポート
データベースでのデータのインポートおよびエクスポートの権限には、以下のシステム権限を使用することができます。
IMPORT
この権限では、SQL コマンド IMPORT または LOAD TABLE を使用したデータベースでのインポートアクティビティが許可されます。ユーザには、この権限のほかにインポートを行う対象テーブルに対する INSERT 権限がユーザに必要であることに注意してください。
EXPORT
この権限では、SQL コマンド EXPORT または LOAD TABLE を使用したデータベースでのエクスポートアクティビティが許可されます。ユーザには、この権限のほかにエクスポートを行うソーステーブルに対する SELECT 権限が必要であることに注意してください。
注記
システム権限の詳細については、SAP HANA セキュリティガイド - システム権限 (System Privileges) を参照してください。
パッケージ権限
パッケージ権限は、従来の SAP HANA リポジトリ内の個々のパッケージに対するアクションを許可します。権限により、リポジトリへの読込アクセスを付与したり、従来の SAP HANA リポジトリへのフルアクセス (読込/書込) を付与したりすることができます。
SAP HANA データベースのリポジトリは、パッケージがサブパッケージとして別のパッケージに割り当てられる階層構造になっています。
パッケージには、Calculation ビューなどのさまざまなオブジェクトの設計時バージョン、および分析権限と関数が含まれています。パッケージを使用するには、それぞれのパッケージ権限が付与されている必要があります。
リポジトリパッケージに付与された権限は、パッケージ内のすべてのサブパッケージだけでなく、パッケージ内の設計時オブジェクトに暗黙的に割り当てられます。ユーザがリポジトリパッケージのオブジェクトを更新できるのは、そのパッケージ内のオブジェクトの読込または書込など、操作を実行するパッケージに対して必要な権限を持っている場合のみです。すべてのパッケージで操作を実行するには、ユーザがルートパッケージ REPO_PACKAGE_ROOT に対する権限を持っている必要があります。
特定のパッケージで要求された操作に対して、親パッケージで権限チェックが繰り返され、パッケージ階層からリポジトリのルートレベルまで再帰的に上位に実行されます。ユーザが階層チェーン内のどのパッケージにも必要な権限を持っていない場合、権限チェックは失敗し、ユーザは要求された操作を実行できません。
リポジトリパッケージ権限のコンテキストでは、ネイティブパッケージとインポートされたパッケージは区別されます。
パッケージの権限をユーザに付与すると、対応するすべてのサブパッケージに対する権限も自動的に付与されます。
注記
パッケージ権限の詳細については、SAP HANA セキュリティガイド - パッケージ権限 (Package Privileges) を参照してください。
Analytic Privilege
分析権限では、特定の値または値の組合せに応じて、計算ビューなどの SAP HANA インフォメーションモデルのデータへの読込アクセスが許可されます。Analytic Privilege は、クエリ処理中に評価されます。
分析権限によってユーザに許可されるデータへのアクセスは、同一のビュー内でもユーザのビジネスロール基づいて異なる。分析権限の定義では、ユーザに表示されるデータを制御する条件が XML 文書に含まれるか、または SQL を使用して定義されます。
標準オブジェクト権限 (SELECT、ALTER、DROP など) は、オブジェクトレベルでのみ粗い権限を実装します。ユーザは、テーブル、ビュー、プロシージャなどのオブジェクトにアクセスするか、またはアクセスしません。多くの場合、この処理で十分ですが、オブジェクトのデータへのアクセスが、特定の値または値の組合せに依存する場合があります。SAP HANA データベースの Analytic Privilege では、同じビュー内で個々のユーザが表示できるデータ型の行レベルでのきめ細かい制御が可能です。
モデラで設計され、SAP Web IDE for SAP HANA のモデラから有効化されたすべての Calculation ビューは、分析権限メカニズムによって自動的にサポートされます。
すでに SAP Business Warehouse (SAP BW) の権限モデルに精通している場合には、この 2 つのモデルの間に多くの類似性があることが分かります。
分析権限の背後にある全体的な考え方は、異なるユーザによる分析ビューの再利用です。ただし、異なるユーザが同じデータを表示できない場合もあります。たとえば、それぞれの地域の販売データのみを表示できる複数の地域販売マネージャは、同じ分析ビューを再利用することができます。分析権限を取得して自分の地域のデータのみを表示し、同じビューに対するクエリによって対応するデータが返されます。これは、SAP BW モデルと比較した場合の大きな違いです。この概念はよく似ていますが、表示権限のない値を返すクエリを実行すると、SAP BW からエラーメッセージが転送されます。SAP HANA データベースでは、クエリが実行されると、権限に応じて表示可能な値のみが返されます。
注記
分析権限の詳細については、SAP HANA セキュリティガイド - 分析権限 (Analytic Privileges) を参照してください。
アプリケーション権限
SAP HANA 拡張アプリケーションサービスのアプリケーションの開発者は、アプリケーションに対するユーザおよびクライアントアクセスを許可するためのアプリケーション権限を登録することができます。
これらの権限は、ユーザおよびクライアントによるアプリケーションへのアクセスを許可します。たとえば、ユーザおよびクライアントがアプリケーションを起動したり、アプリケーションで管理アクションを実行したりすることを許可します。
アプリケーション権限を付与および取り消すには、GRANT_APPLICATION_PRIVILEGE プロシージャを使用し、_SYS_REPO スキーマの REVOKE_APPLICATION_PRIVILEGE プロシージャを使用します。
実行時に、ユーザまたはロールにアプリケーション権限を付与できます。ただし、リポジトリに登録されたロールにアプリケーション権限を付与することをお奨めします。
注記
アプリケーション権限の詳細については、SAP HANA セキュリティガイド - アプリケーション権限 (Application Privileges) を参照してください。
ユーザに対する権限
ユーザに対する権限は、ユーザが他のユーザに付与できる SQL 権限です。ATTACH DEBUGGER はユーザに付与できる唯一の権限です。
たとえば、ユーザ A はユーザ B に権限 ATTACH DEBUGGER を付与できます。これにより、ユーザ B はユーザ A のセッションで SQLScript コードをデバッグできます。ユーザ A は、この権限を付与できる唯一のユーザです。
注記
ユーザ B にも関連する SQLScript プロシージャに対するオブジェクト権限 DEBUG が必要です。
他のユーザに代わって ATTACH DEBUGGER を付与することはできません。






