sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLでユーザーをスーパーユーザーに変更する方法

    • 新しいユーザーの作成
    • 既存のユーザー権限の表示
    • 既存のユーザー権限の変更
      • SUPERUSERの割り当て 許可
      • 権限の取り消し

    PostgreSQL内でのユーザー権限の変更は、実際に必要な許容粒度に応じて、かなり単純なものから非常に複雑なものまでさまざまです。ただし、ほとんどの場合、これは強力な ALTER USER ユーザーがログインできるようにすること、データベースを作成すること、役割を管理すること、さらには SUPERUSER になることまで、すべてを実行するために使用する必要があるコマンド アカウント。

    ALTER USERの威力について簡単に説明します コマンドを使用すると、必要に応じてさまざまな権限の割り当てと削除を簡単に実行できます。

    新しいユーザーの作成

    変更に入る前に ユーザー権限については、新しいユーザーアカウント(一般に ROLE と呼ばれます)を確立する必要があります )いじります。

    まず、既存のすべてのユーザーを一覧表示します。

    =# SELECT usename FROM pg_user;
     usename
    ----------
     postgres
    (1 row)
    

    デフォルトでは、 postgres 通常、存在する唯一のユーザーであるため、 librarianの新しいユーザーを作成します。 ライブラリを制御する データベース。これは、 CREATE USERを使用して実行できます。 コマンド:

    =# CREATE USER librarian;
    CREATE ROLE
    =# SELECT usename FROM pg_user;
      usename
    -----------
     postgres
     librarian
    (2 rows)
    
    既存のユーザー権限の表示

    多くの場合、システム内のユーザーに割り当てられている既存のアクセス許可を調べると便利です。これは、 \ duを使用して簡単に実行できます。 psqlからのコマンド プロンプト:

    =# \du
                                 List of roles
     Role name |                   Attributes                   | Member of
    -----------+------------------------------------------------+-----------
     librarian |                                                | {}
     postgres  | Superuser, Create role, Create DB, Replication | {}
    

    新しいlibrarianを追加したにもかかわらず、はっきりとわかります。 ユーザー、いくつかの権限を割り当てる必要があります。

    既存のユーザー権限の変更

    これで、ライブラリアン ユーザーが存在する場合は、 ALTER USERの使用を開始できます ライブラリアンに付与された権限を変更する 。

    ALTER USERの基本フォーマット ユーザーの名前(または ROLE )その後に一連の options が続きます どの許容変更を行うかをPostgreSQLに通知するには:

    =# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;
    

    これらのオプションの範囲はCREATEDB<​​/ code> 、 CREATEROLE CREATEUSER 、さらには SUPERUSER 。さらに、ほとんどのオプションには否定的な対応物もあり、拒否したいことをシステムに通知します その特定の権限のユーザー。これらのオプション名は、対応する割り当てと同じですが、接頭辞として NOが付けられます。 (例: NOCREATEDB NOCREATEROLE NOSUPERUSER

    SUPERUSERの割り当て 許可

    これで、ユーザーの作成と ALTER USERの使用の基本を理解できました。 権限を変更するには、 SUPERUSERを使用するだけです。 ライブラリアンを割り当てるオプション ユーザーSUPERUSER 許可:

    =# ALTER USER librarian WITH SUPERUSER;
    ALTER ROLE
    

    案の定、今すぐ許可リストを表示すると、ライブラリアンが表示されます 新しいSUPERUSERがあります 必要な許可:

    =# \du
                                 List of roles
     Role name |                   Attributes                   | Member of
    -----------+------------------------------------------------+-----------
     librarian | Superuser                                      | {}
     postgres  | Superuser, Create role, Create DB, Replication | {}
    
    権限の取り消し

    間違えて後で取り消す権限を割り当てた場合は、同じ ALTER USERを発行するだけです。 コマンドを追加しますが、 NOを追加します 取り消される許容オプションの前のプレフィックス。

    たとえば、 SUPERUSERを削除できます ライブラリアンから そのようなユーザー:

    =# ALTER USER librarian WITH NOSUPERUSER;
    ALTER ROLE
    =# \du
                                 List of roles
     Role name |                   Attributes                   | Member of
    -----------+------------------------------------------------+-----------
     librarian |                                                | {}
     postgres  | Superuser, Create role, Create DB, Replication | {}
    

    1. PostgreSQL:6つのそれほど簡単ではない部分

    2. SQL Group BY、各グループの上位N項目

    3. SQL Server 2016:データベースを復元する

    4. SQL Server(T-SQL)でクエリの結果を電子メールで送信する方法