すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:アカウント権限の管理

最終更新日:Sep 24, 2024

このトピックでは、AnalyticDB for PostgreSQLでデータベースアカウントのアクセス許可を管理する方法について説明します。

前提条件

データベースアカウントが作成されます。 詳細については、「データベースアカウントの作成」をご参照ください。

権限管理

データベースアカウントを作成した後、次の操作を実行できます。

  • ALTER ROLEステートメントを実行して、データベースロールを変更します。

  • GRANTステートメントを実行してユーザーアクセス権限を付与するか、REVOKEステートメントを実行してユーザーアクセス権限を取り消します。

  • GRANTステートメントを実行して、データベースオブジェクトに対する権限を付与します。

データベースロールの変更

  • データベースロールを変更します。 サンプル文:

    ALTER ROLE jsmith WITH PASSWORD 'passwd123';
    ALTER ROLE admin VALID UNTIL 'infinity';
    ALTER ROLE jsmith LOGIN;
    ALTER ROLE jsmith RESOURCE QUEUE adhoc;
    ALTER ROLE jsmith DENY DAY 'Sunday';
  • データベースロールのsearch_pathなどのサーバー設定を構成します。

    ALTER ROLE admin SET search_path TO myschema, public;

ユーザー権限の付与

  • CREATE ROLEステートメントを実行して、LOGIN権限を持たないロールを作成すると、そのロールはグループと見なされます。 グループを使用して、ユーザーのグループの権限を管理できます。 CREATEROLEおよびCREATEDB権限を持つadminという名前のグループを作成します。 例:

    CREATE ROLE admin CREATEROLE CREATEDB;
  • ユーザーjohnとsallyをグループに追加します。 例:

    GRANT admin TO john, sally;
  • グループからボブを削除します。 例:

    REVOKE admin FROM bob;
  • グループにデータベースオブジェクトの権限を付与します。 グループ内のすべてのユーザーが権限を継承できます。

    GRANT ALL ON TABLE mytable TO admin;
    GRANT ALL ON SCHEMA myschema TO admin;
    GRANT ALL ON DATABASE mydb TO admin;

データベースオブジェクトに対する権限の付与

データベース、スキーマ、テーブル、ビュー、シーケンス、関数などのデータベースオブジェクトが作成されると、オブジェクトのすべての権限はオブジェクトの所有者に属します。 既定では、オブジェクトの所有者とRDS_SUPERUSERユーザーのみが、オブジェクトに対する操作を実行する権限を持っています。 他のユーザーがオブジェクトに対して操作を実行する場合は、必要な権限が必要です。 次の表に、さまざまなデータベースオブジェクトに対する権限を示します。

データベースオブジェクト

権限

テーブル、ビュー、およびシーケンス

SELECT INSERT UPDATE DELETE RULE ALL

外部テーブル

ルールをすべて選択

データベース

CONNECT CREATE TEMPORARY | TEMP ALL

関数

EXECUTE

手続き言語

使用法

スキーマ

すべての使用を作成する

重要

各タイプのオブジェクトに個別に権限を付与する必要があります。 たとえば、データベースに対してgrant ALL権限を付与すると、データベース内のテーブルにアクセスできなくなります。 CONNECT、CREATE、およびTEMP権限があるのは、データベースのみです。

  • mytableのINSERT権限をjsmithに付与します。 例:

    GRANT INSERT ON mytable TO jsmith;
  • table2のcol1列に対するSELECT権限をjsmithに付与します。 例:

    GRANT SELECT (col1) on TABLE table2 TO jsmith;
  • jsmithからmytableのすべての権限を取り消します。 例:

    REVOKE ALL PRIVILEGES ON mytable FROM jsmith;

テーブルの所有者またはRDS_SUPERUSERユーザーの場合は、テーブルの所有者を変更したり、所有者からテーブルに対する権限を削除したりできます。

サリーがボブに所有する

REASSIGN OWNED BY sally TO bob;
DROP OWNED BY visitor;