Data Management (DMS) は、データベースインスタンス、データベース、テーブル、カラム、行、およびメタデータに対するきめ細かなアクセス制御を提供します。このトピックでは、DMS の権限モデルについて説明し、チケットを使用して権限を申請する方法を示します。
権限カテゴリ
DMS では、権限を次の 3 つのカテゴリに分類します。
カテゴリ | 制御対象 |
操作権限 | ユーザーがリソースに対して実行できる操作 (ログイン、クエリ、エクスポート、変更) |
データ権限 (リソース所有者権限) | リソースの所有権 (アクセスの付与および取り消しの権限を含む) |
メタデータアクセス制御 | リソースの可視性 (権限のないユーザーがリソースを表示したり、アクセスを申請できるかどうか) |
操作権限
操作権限は、ユーザーがリソースに対して実行できる操作を管理します。次のタイプがあります。
権限タイプ | 説明 | セキュリティホスティングの要否 |
データベースインスタンスに対する権限 (ログイン) | 企業が管理するアカウントとパスワードを使用してデータベースインスタンスにログインします。 | 不要 |
データベースインスタンスに対する権限 (パフォーマンス) | データベースインスタンスのパフォーマンス詳細を表示します。詳細については、「データベースインスタンスのパフォーマンス詳細の表示」をご参照ください。 | 必要 |
データベースインスタンスに対する権限 (データ) | データベースインスタンス内のデータのクエリ、エクスポート、および変更を実行します (機密カラムおよびアクセス制御が有効な行を除く)。 | — |
データベースに対する権限 | データベース内のデータのクエリ、エクスポート、および変更を実行します (機密カラムおよびアクセス制御が有効な行を除く)。 | — |
テーブルに対する権限 | テーブル内のデータのクエリ、エクスポート、および変更を実行します (機密カラムおよびアクセス制御が有効な行を除く)。 | — |
機密カラムに対する権限 | 機密カラム内のデータのクエリ、エクスポート、および変更を実行します。申請する前に、機密データ保護機能が有効で、親データベースおよびテーブルに対する権限を持っていることを確認してください。 | — |
行に対する権限 | 行内のデータのクエリ、エクスポート、および変更を実行します。設定の詳細については、「行レベルのアクセス制御の設定」をご参照ください。申請する前に、親データベースおよびテーブルに対する権限を持っていることを確認してください。 | — |
プログラマブルオブジェクトに対する権限 | プログラマブルオブジェクト内のデータのクエリ、エクスポート、および変更を実行します。詳細については、「ストアドルーチンを使用したプログラマブルオブジェクトの変更」をご参照ください。 | 必要 |
DMS におけるクエリ、エクスポート、変更の意味:
クエリ:SQL コンソールでクエリステートメントを実行します。
変更:SQL コンソールで変更ステートメントを実行し、データ変更チケットおよびデータベースとテーブルの同期チケットを送信します。これは、承認なしでデータを変更することを意味するものではありません。DMS 管理者は、SQL コンソールで許可されるステートメントのタイプを制限できます。
エクスポート:データエクスポートチケットを送信します。これは、承認なしでデータをエクスポートすることを意味するものではありません。
データ権限 (リソース所有者権限)
データ権限は、リソースの所有権を付与します。所有者は、どのユーザーがアクセス権を持っているかを表示し、ユーザーに権限を付与し、ユーザーから権限を取り消し、リソースデータをクエリできます (機密カラムおよびアクセス制御が有効な行を除く)。
3 つの所有者ロールがあります:インスタンス所有者、データベース所有者、テーブル所有者。
データベースインスタンスでセキュリティホスティングが無効になっている場合、DMS 管理者および DBA のみがインスタンス所有者を追加または削除できます。インスタンス所有者を管理するには、DMS コンソールの左側の [Database Instances] セクションでデータベースインスタンスを右クリックし、[Instance Owner] > [Set Owner] を選択します。
メタデータアクセス制御
メタデータアクセス制御は、リソースの可視性を制限します。
インスタンスアクセス制御:権限のあるユーザーのみがデータベースインスタンスをクエリまたはアクセスできます。権限のないユーザーはアクセスを申請できません。
データベースアクセス制御:権限のあるユーザーのみがデータベースをクエリまたはアクセスできます。権限のないユーザーはアクセスを申請できません。
ユーザーアクセス制御:ユーザーは、すでに権限を持っているリソースのみをクエリまたはアクセスできます。ユーザーは、他のデータベースインスタンスやデータベースに対する権限を申請できません。
データベースインスタンスまたはデータベースに対する任意のタイプの操作権限またはデータ権限を持っている場合、そのリソースに対する権限を持っているとみなされます。
注意事項
セキュリティコラボレーションモードでは、DMS は SELECT サブクエリを含む DML ステートメント (UPDATE、DELETE、INSERT など) を、潜在的なデータ読み取り操作として扱います。サブクエリで参照されるデータベースおよびテーブルに対するエクスポート権限が必要です。
このポリシーは、ユーザーが DML ステートメント (例:INSERT INTO a SELECT * FROM b) を通じてデータエクスポート承認プロセスを回避するのを防ぎ、データセキュリティを保護します。
一般的なシナリオ
次の DML ステートメントは、エクスポート権限チェックをトリガーします。
UPDATE ... SET ... WHERE col IN (SELECT ...):サブクエリで参照されるデータベースおよびテーブルに対するエクスポート権限が必要です。DELETE FROM table WHERE col = (SELECT ...):サブクエリで参照されるデータベースおよびテーブルに対するエクスポート権限が必要です。INSERT INTO a SELECT * FROM b:ソーステーブルに対するエクスポート権限が必要です。
ソリューション
上記のいずれかの DML ステートメントを実行する際にエクスポート権限チェックが失敗した場合は、サブクエリで参照されるデータベースおよびテーブルに対するエクスポート権限を申請してください。エクスポート権限を申請するには、権限チケットを送信します。詳細については、「チケットを使用した権限の申請」をご参照ください。
権限を管理できるユーザー
次の表は、各ロールが実行できる操作を示しています。
操作 | 一般ユーザー | DBA | DMS 管理者 |
チケットを使用した権限の申請 | 可 | ||
インスタンス管理による権限の管理 | 可 | 可 | |
インスタンスおよびデータベースのメタデータアクセス制御の有効化 | 可 | 可 | |
ユーザー管理による任意のリソースに対する権限の付与または取り消し | 可 | ||
ユーザーに対するアクセス制御の有効化 | 可 |
各ロールの管理手順の詳細については、次を参照してください。
DBA および DMS 管理者:「DMS 管理者または DBA としての権限の管理」
DMS 管理者 (ユーザー管理):「DMS 管理者としての権限の管理」
メタデータアクセス制御の有効化:「メタデータアクセス制御の有効化」
ユーザーに対するアクセス制御の有効化:「ユーザーに対するアクセス制御の有効化」
ロールを確認するには、「システムロールの表示」をご参照ください。
DMS は、メタデータアクセス制御の変更を除き、すべての権限変更操作を操作ログに記録します。記録される操作には、権限の申請、付与、解放、および取り消しが含まれます。操作ログを表示するには、上部メニューで [Security and disaster recovery (DBS)] > [Operation Audit] を選択し、[Operation Logs] タブをクリックします。
チケットを使用した権限の申請
アクセス制御が有効になっているユーザーを除き、DMS ユーザーはチケットを送信してリソースに対する権限を申請できます。
権限チケットの送信
DMS コンソール V5.0 にログインします。
左上隅にある
アイコンにポインターを合わせ、[すべての機能] > [セキュリティとディザスタリカバリ (DBS)] > [権限センター] > [権限チケット] を選択します。通常モードで DMS コンソールを使用している場合は、上部メニューで [Security and disaster recovery (DBS)] > [Permission Center] > [Permission Tickets] を選択します。
[Permission Tickets] ページで、[Access apply] をクリックし、ドロップダウンリストから権限タイプを選択します。
[Access applyTickets] ページで、リソースを選択し、権限を設定します。
データベースインスタンスの Secure Management (セキュリティホスティング) ステータスに基づいてリソースを選択します。
カテゴリ
サポートされる権限タイプ
選択方法
Secure Management-Disabled
Instances-Login
検索ボックスにデータベースインスタンスのエンドポイントまたは名前を入力し、[検索] をクリックします。 結果からインスタンスを選択し、
アイコンをクリックして [選択されたインスタンスの確認] セクションに追加します。Secure Management-Enabled
Instances-OWNER、Database-OWNER、Table-OWNER、Instances-Permission、Instances-Performance、Database-Permission、Table-Permission、Programmable Object、Row-Permission、Sensitive Column-Permission
検索ボックスにデータベース名を入力し、[検索] をクリックします。あいまい一致には、
%をワイルドカードとして使用します (たとえば、dms%test)。結果からデータベースを選択し、
アイコンをクリックして [選択したデータベース/テーブル/列] セクションに追加します。権限を選択します。ログイン、クエリ、エクスポート、変更の権限から選択し、有効期間を設定し、リクエストの理由を入力します。
[Submit] をクリックします。チケットは承認ステップに進みます。
チケットが承認されると、システムは自動的に申請された権限を付与します。
承認ワークフロー
承認者は、データベースインスタンスの管理方法によって異なります。
セキュリティコラボレーションモード:承認プロセスはカスタマイズ可能です。
セキュリティコラボレーションモード以外:
セキュリティホスティングが無効の場合:ログイン権限のみ申請できます。デフォルトの承認者は、データベースインスタンスの DBA です。
セキュリティホスティングが有効の場合:承認者はリソース所有者です。リソース所有者が設定されていない場合、承認者はデータベースインスタンスの DBA です。