다음을 통해 공유


Azure Database for PostgreSQL에서 사용자 관리

이 문서에서는 Azure Database for PostgreSQL 유연한 서버 인스턴스 내에서 사용자를 만드는 방법을 설명합니다.

Azure 구독 사용자 및 해당 권한을 만들고 관리하는 방법을 알아보려는 경우를 가정해 보겠습니다. 이 경우 Azure RBAC(Azure 역할 기반 액세스 제어) 문서를 방문하거나 역할을 사용자 지정하는 방법을 검토할 수 있습니다.

서버 관리자 계정

Azure Database for PostgreSQL 유연한 서버 인스턴스를 처음 만들 때 서버 관리자 사용자 이름과 암호를 제공했습니다. 자세한 내용은 Azure Database for PostgreSQL 만들기 를 참조하여 단계별 접근 방식을 확인하세요. 서버 관리자 사용자 이름은 사용자 지정 이름이기 때문에 Azure Portal에서 선택한 서버 관리자 사용자 이름을 찾을 수 있습니다.

Azure Database for PostgreSQL 유연한 서버 인스턴스는 세 가지 기본 역할이 정의된 상태에서 만들어집니다. 다음 명령을 실행하여 이러한 역할을 볼 수 있습니다. SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • 서버 관리자 사용자

서버 관리자 사용자는 azure_pg_admin 역할의 구성원입니다. 그러나 서버 관리자 계정은 azuresu 역할의 일부가 아닙니다. 이 서비스는 관리되는 PaaS 서비스이므로 Microsoft만 슈퍼 사용자 역할의 일부입니다.

PostgreSQL 엔진은 PostgreSQL 제품 설명서에 설명된 대로 권한을 사용하여 데이터베이스 개체에 대한 액세스를 제어합니다. Azure Database for PostgreSQL에서 서버 관리자 사용자에게는 다음과 같은 권한이 부여됩니다.

  • 로그인, NOSUPERUSER, INHERIT, CREATEDB, CREATEROLE

서버 관리자 사용자 계정을 사용하여 더 많은 사용자를 만들고 해당 사용자에게 azure_pg_admin 역할에 부여할 수 있습니다. 또한 서버 관리자 계정을 사용하여 권한이 적은 사용자와 개별 데이터베이스 및 스키마에 액세스할 수 있는 역할을 만들 수 있습니다.

Azure Database for PostgreSQL에서 더 많은 관리 사용자를 만드는 방법

  1. 연결 정보 및 관리자 사용자 이름을 가져옵니다. Azure Database for PostgreSQL 유연한 서버 인스턴스에 연결하려면 전체 서버 이름 및 관리자 로그인 자격 증명이 필요합니다. 서버 개요 페이지 또는 Azure Portal의 속성 페이지에서 서버 이름 및 로그인 정보를 쉽게 찾을 수 있습니다.

  2. 관리자 계정 및 암호를 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스에 연결합니다. pgAdmin 또는 psql과 같은 기본 설정 클라이언트 도구를 사용합니다. 연결하는 방법을 잘 모르는 경우 Azure Database for PostgreSQL 만들기를 참조하세요.

  3. 다음 SQL 코드를 편집하고 실행합니다. 새 사용자 이름을 new_user< 자리 표시자 값>으로 바꾸고 자리 표시자 암호를 고유한 강력한 암호로 바꿉 있습니다.

    CREATE USER <new_user> CREATEDB CREATEROLE PASSWORD '<StrongPassword!>';
    
    GRANT azure_pg_admin TO <new_user>;
    

Azure Database for PostgreSQL에서 데이터베이스 사용자를 만드는 방법

  1. 연결 정보 및 관리자 사용자 이름을 가져옵니다. Azure Database for PostgreSQL 유연한 서버 인스턴스에 연결하려면 전체 서버 이름 및 관리자 로그인 자격 증명이 필요합니다. 서버 개요 페이지 또는 Azure Portal의 속성 페이지에서 서버 이름 및 로그인 정보를 쉽게 찾을 수 있습니다.

  2. 관리자 계정 및 암호를 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스에 연결합니다. pgAdmin 또는 psql과 같은 기본 설정 클라이언트 도구를 사용합니다.

  3. 다음 SQL 코드를 편집하고 실행합니다. 자리 표시자 값을 <db_user> 원하는 새 사용자 이름 및 자리 표시자 값 <newdb> 으로 사용자 고유의 데이터베이스 이름으로 바꿉 있습니다. 자리 표시자 암호를 사용자 고유의 강력한 암호로 바꿉다.

    아래의 SQL 코드는 새 데이터베이스를 만든 다음 Azure Database for PostgreSQL 유연한 서버 인스턴스에 새 사용자를 만들고 해당 사용자의 새 데이터베이스에 연결 권한을 부여합니다.

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. 관리자 계정을 사용하여 데이터베이스의 개체를 보호하기 위해 다른 권한을 부여해야 할 수 있습니다. 데이터베이스 역할 및 권한에 대한 자세한 내용은 PostgreSQL 설명서를 참조하세요. 다음은 그 예입니다.

    GRANT ALL PRIVILEGES ON DATABASE <newdb> TO <db_user>;
    

    사용자가 테이블 "역할"을 만드는 경우 테이블은 해당 사용자에 속합니다. 다른 사용자가 테이블에 액세스해야 하는 경우 테이블 수준에서 다른 사용자에게 권한을 부여해야 합니다.

    다음은 그 예입니다.

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    
  5. 새 사용자 이름과 암호를 사용하여 지정된 데이터베이스를 지정하여 서버에 로그인합니다. 이 예제에서는 psql 명령줄을 보여 줍니다. 이 명령을 사용하면 사용자 이름에 대한 암호를 묻는 메시지가 표시됩니다. 사용자 고유의 서버 이름, 데이터베이스 이름 및 사용자 이름을 대체합니다.

    psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=db_user --dbname=newdb