다음을 통해 공유


Postgres 역할 관리

중요합니다

이 기능은 다음 지역의 공개 미리 보기에 있습니다. westuswestus2eastuseastus2centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindiasoutheastasiauksouth

Lakebase 데이터베이스 인스턴스 소유자의 Azure Databricks ID에 대한 Postgres 역할이 자동으로 만들어집니다.

처음에는 인스턴스 소유자만 Postgres를 통해 로그인하고 인스턴스에 액세스할 수 있습니다. 다른 Azure Databricks ID가 데이터베이스 인스턴스에 로그인할 수 있도록 하려면 Azure Databricks ID에 해당 Postgres 역할이 있어야 합니다.

이 페이지에서는 PostgreSQL에서 추가 Azure Databricks ID 기반 역할을 추가하고 관리하는 방법을 설명합니다.

Postgres 역할 만들기 및 Azure Databricks ID에 대한 권한 부여

Azure Databricks UI 또는 PostgreSQL 쿼리를 사용하여 Postgres 역할을 만듭니다.

비고

역할 관리 작업은 데이터베이스 인스턴스에 부여된 사용 권한에 의해 제어됩니다. 역할을 관리하기 전에 적절한 수준의 액세스 권한이 있는지 확인합니다.

사용자 인터페이스 (UI)

데이터베이스 인스턴스에 대한 권한이 있는 CAN USE 사용자는 Azure Databricks ID와 연결된 기존 Postgres 역할을 보거나 인스턴스에 자신의 ID에 대한 역할을 추가할 수 있습니다.

CAN MANAGE 사용자는 추가 권한을 포함하여 다른 Azure Databricks ID에 대한 역할을 추가로 만들고 Azure Databricks ID에 대한 역할을 삭제할 수 있습니다.

데이터베이스 인스턴스 개요 페이지에서 원하는 사용자, 그룹 또는 서비스 주체에 추가 권한을 할당할 수 있습니다.

  1. 앱 아이콘 을 클릭합니다.오른쪽 위 모서리에 있는 에서 Lakebase Postgres를 선택합니다.
  2. 프로비전된 인스턴스 페이지를 열려면 프로비전됨을 클릭합니다.
  3. 데이터베이스 인스턴스를 선택합니다.
  4. Lakebase 앱 사이드바에서 역할 페이지를 선택합니다.
  5. 오른쪽 위 모서리에서 역할 추가 를 클릭합니다.
  6. 보안 주체 드롭다운 메뉴에서 데이터베이스 액세스 권한을 부여할 사용자, 그룹, 또는 서비스 주체를 선택하십시오. 인스턴스에 Postgres 역할이 아직 없는 Azure Databricks ID를 선택해야 합니다.
  7. (선택 사항) 부여할 시스템 역할을 선택합니다.
    • databricks_superuser: 모든 데이터에 대한 읽기 및 쓰기 권한을 부여합니다. 이는 pg_read_all_data, pg_write_all_data, 그리고 pg_monitor로부터 상속받은 광범위한 권한을 가진 관리 역할입니다. 미리 만든 역할 및 권한을 참조하세요.
  8. (선택 사항) 시스템 특성을 선택하여 특정 기능을 부여합니다.
    • CREATEDB: 새 데이터베이스를 만들 수 있는 권한을 부여합니다.
    • CREATEROLE: 새 역할을 만들 수 있는 권한을 부여합니다.
    • BYPASSRLS: RLS(행 수준 보안) 정책을 바이패스할 수 있는 권한을 부여합니다.
  9. 추가를 클릭합니다.

PostgreSQL

새 Postgres 역할을 만들기 전에 다음 요구 사항을 충족하는지 확인합니다.

  • 데이터베이스에 대한 CREATE 사용 권한과 CREATE ROLE 권한이 있어야 합니다.
  • Azure Databricks ID(사용자, 서비스 주체 또는 그룹)로 Postgres에 인증하고 로그인해야 합니다. 네이티브 Postgres 인증된 세션은 Azure Databricks 역할을 만들 수 없습니다.
  • 인증 토큰은 유효해야 하며 역할을 만들 때 만료되지 않아야 합니다.

함수를 databricks_create_role 사용하여 Azure Databricks ID 기반 PostgreSQL 역할을 추가하고 만듭니다. 사용자 지정 PostgreSQL 확장 databricks_auth 은 함수를 databricks_create_role 제공합니다.

  1. databricks_auth 확장을 만드십시오. 각 Postgres 데이터베이스에는 고유한 확장명이 있어야 합니다.

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  2. 이 함수를 databricks_create_role 사용하여 Azure Databricks ID에 대한 새 Postgres 역할을 추가하고 만듭니다. 역할이 아직 없어야 합니다. 이름이 같은 역할이 있는 경우 Azure Databricks ID 기반 역할을 만들기 전에 삭제합니다.

    SELECT databricks_create_role('identity_name', 'identity_type');
    

    identity_name 매개 변수는 identity_type Azure Databricks ID 형식에 따라 달라집니다.

    • Azure Databricks 사용자:

      • identity_name: 사용자의 전자 메일(예: myuser@databricks.com
      • 신원_유형: USER
      SELECT databricks_create_role('myuser@databricks.com','USER');
      
    • Azure Databricks 서비스 주체:

      • identity_name: 서비스 주체의 애플리케이션 ID(예: 8c01cfb1-62c9-4a09-88a8-e195f4b01b08
      • 신원_유형: SERVICE_PRINCIPAL
      SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08','SERVICE_PRINCIPAL');
      
    • Azure Databricks 그룹:

      • identity_name: 그룹 이름(대/소문자 구분): My Group 123
      • 신원_유형: GROUP
      SELECT databricks_create_role('My Group 123','GROUP');
      
  3. databricks_create_role로 생성된 역할에는 생성 후에 PUBLIC에게만 부여된 권한이 있습니다. 추가 권한을 부여하거나 취소하려면 표준 Postgres 권한 관리 명령 GRANTREVOKE.

    역할에 테이블에 액세스할 수 있는 읽기 권한을 부여합니다.

    GRANT SELECT ON "my_schema"."my_table" TO <role-name>;
    

    역할에서 테이블에 대한 쓰기 액세스를 제거합니다.

    REVOKE INSERT, UPDATE, DELETE ON TABLE "my_schema"."my_table" FROM <role-name>;
    

    역할에서 데이터베이스에 대한 모든 액세스를 취소합니다.

    REVOKE CONNECT ON DATABASE "example_database" FROM <role-name>;
    

Azure Databricks ID 역할 보기

사용자 인터페이스 (UI)

데이터베이스 인스턴스 개요 페이지에서 해당 Postgres 역할이 있는 사용자, 그룹 및 서비스 주체를 확인할 수 있습니다.

  1. 앱 아이콘 을 클릭합니다.오른쪽 위 모서리에 있는 에서 Lakebase Postgres를 선택합니다.
  2. 프로비전된 인스턴스 페이지를 열려면 프로비전됨을 클릭합니다.
  3. 데이터베이스 인스턴스를 선택합니다.
  4. Lakebase 앱 사이드바에서 역할 페이지를 선택합니다.

PostgreSQL

PostgreSQL 쿼리를 사용하여 기본으로 생성된 모든 Azure Databricks 아이덴티티 역할을 나열하고, databricks_create_role 함수를 사용하여 databricks_list_roles 확장에서 databricks_auth 함수를 사용하십시오. Postgres 역할로 인증하기 위해 추가된 모든 Azure Databricks 사용자, 서비스 주체 및 그룹이 나열됩니다.

CREATE EXTENSION IF NOT EXISTS databricks_auth;
SELECT * from databricks_list_roles;

Azure Databricks ID 기반 Postgres 역할 삭제

사용자 인터페이스 (UI)

역할 제거는 취소할 수 없습니다. 역할을 다시 만들 수 있지만 재할당된 개체를 소유하는 새 역할을 삭제하지 않고는 개체 소유권 재할당을 되돌릴 수 없습니다.

  1. 앱 아이콘 을 클릭합니다.오른쪽 위 모서리에 있는 에서 Lakebase Postgres를 선택합니다.
  2. 프로비전된 인스턴스 페이지를 열려면 프로비전됨을 클릭합니다.
  3. 데이터베이스 인스턴스를 선택합니다.
  4. Lakebase 앱 사이드바에서 역할 페이지를 선택합니다.
  5. 삭제할 역할에 대해 행의 오른쪽에 있는 Kebab 메뉴 아이콘 을 클릭합니다.
  6. 드롭을 클릭합니다.
  7. (선택 사항) 역할이 개체를 소유하는 경우 소유된 개체를 다시 할당 하여 역할 삭제를 사용하도록 설정합니다. 이 옵션은 삭제하기 전에 소유된 개체를 다른 역할에 다시 할당합니다. 일부 개체(예: 삭제되는 역할에 대한 권한 부여)는 다시 할당할 수 없으며 재할당 가능한 모든 개체를 다시 할당한 후 삭제됩니다.
  8. 확인을 클릭합니다.

PostgreSQL

Azure Databricks ID 기반 Postgres 역할은 다른 Postgres 역할과 동일하게 삭제하고 제거할 수 있습니다. 자세한 내용은 역할 삭제에 대한 PostgreSQL 설명서를 참조하세요. Azure Databricks ID 기반 역할이 삭제된 후에는 토큰 기반 인증 및 Postgres 액세스에 사용할 수 없습니다.