Snowflake의 dbt 프로젝트에 대한 액세스 제어

다음 명령은 dbt 프로젝트 오브젝트에 대해 일반적으로 부여되는 권한을 보여줍니다.

  • 작업 공간 내에서 배포하는 것을 포함하여 dbt 프로젝트 오브젝트를 생성할 수 있는 권한을 부여하려면:

    GRANT CREATE DBT PROJECT ON SCHEMA my_database.my_schema TO ROLE my_role
    
    Copy
  • dbt 프로젝트 오브젝트에 작업 공간을 연결하는 것을 포함하여 dbt 프로젝트 오브젝트를 변경하거나 삭제할 수 있는 권한을 부여하려면:

    GRANT OWNERSHIP ON DBT PROJECT my_dbt_project_object TO ROLE my_role
    
    Copy
  • dbt 프로젝트 오브젝트를 실행하고 파일을 나열하거나 가져올 수 있는 권한을 부여하려면:

    GRANT USAGE ON DBT PROJECT my_dbt_project_object TO ROLE my_role
    
    Copy

dbt 프로젝트 실행을 위한 역할 및 권한

dbt 프로젝트를 실행할 때, 실행을 수행하는 역할과 dbt run 또는 build 명령을 지정할 때 출력을 구체화하는 역할은 실행 방법에 따라 다릅니다.

SQL 또는 CLI에서 실행

EXECUTE DBT PROJECT에 지정된 dbt 명령은 프로젝트 profiles.yml 파일의 outputs 블록에 지정된 role``의 권한으로 실행됩니다. 작업은 EXECUTE DBT PROJECT를 호출하는 Snowflake 사용자에게 부여된 권한으로만 추가로 제한됩니다. 지정된 사용자와 역할 모두 ``warehouse``를 사용하고, 프로젝트의 :file:`profiles.yml` 파일에 지정된 ``database``schema``에 대한 작업을 수행하고, dbt 모델이 지정하는 다른 Snowflake 오브젝트에 대한 작업을 수행하는 데 필요한 권한이 있어야 합니다.

작업 공간 내에서 실행

작업 공간 내에서 프로젝트에 대한 dbt Run 또는 Build 명령을 선택하면 프로젝트의 profiles.yml 파일에 정의된 role``과 Snowflake 사용자의 모든 보조 역할을 모두 사용하여 대상 출력을 구체화합니다. 지정된 사용자와 역할 모두 ``warehouse``를 사용하고, 프로젝트의 :file:`profiles.yml` 파일에 지정된 ``database``schema``에 대한 작업을 수행하고, dbt 모델이 지정하는 다른 Snowflake 오브젝트에 대한 작업을 수행하는 데 필요한 권한이 있어야 합니다.

작업 공간 내에서 예약된 실행

작업 공간 내에서 dbt 프로젝트 오브젝트 실행을 예약하면 사용자 관리 작업이 생성됩니다. 작업 공간 내에서 작업을 생성하려면 CREATE TASK 참조의 label-create_task_sql_access_control`에 설명된 권한을 가진 역할이 사용자에게 있어야 합니다. Snowflake는 작업 소유자의 권한으로 작업을 실행하지만 작업 실행은 사용자와 연결되지 않습니다. 자세한 내용은 :ref:`label-system_service 섹션을 참조하십시오.