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

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

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

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

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

    GRANT USAGE ON DBT PROJECT my_dbt_project_object TO ROLE my_role;
    
  • Snowsight에서 dbt 프로젝트 오브젝트를 보려면 해당 dbt 프로젝트에 대한 MONITOR 권한이 있는 역할을 사용해야 합니다. 이 권한이 없으면 프로젝트 세부 정보, 실행 기록 또는 모니터링 정보에 액세스할 수 없습니다.

    GRANT MONITOR ON DBT PROJECT my_dbt_project_object TO ROLE my_role;
    

자세한 내용은 dbt 프로젝트 오브젝트 권한 섹션을 참조하십시오.

dbt 프로젝트 배포를 위한 역할 및 권한

Snowsight 에서 dbt 프로젝트를 배포하는 경우 처음에는 배포 대화 상자에서 선택한 역할(즉, Connect » Deploy dbt project`에서 선택한 역할)을 사용합니다. 컴파일하는 동안 dbt 프로젝트는 오브젝트에 우선적으로 적용되는 DEFAULT_TARGET 특성이 있는 경우를 제외하고, :code:`profiles.yml 파일의 대상 프로필에 지정된 역할을 사용합니다.

마찬가지로, SQL 또는 CLI에서 dbt 프로젝트를 배포하는 경우 처음에는 워크시트 또는 :code:`connection.toml`에서 각각 역할을 사용한 다음, 명령에 지정된 역할을 사용합니다. 배포 중 실제 컴파일은 오브젝트에 우선적으로 적용되는 DEFAULT_TARGET 특성이 있는 경우를 제외하고, :code:`profiles.yml`의 대상 프로필 내에서 역할을 사용합니다.

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 오브젝트에 대한 작업을 수행하는 데 필요한 권한이 있어야 합니다.

작업 공간 내에서 실행

Choosing the dbt Run or Build command for a project from within a workspace materializes target output using the role defined in the project’s profiles.yml file. Both the user and the role specified must have the required privileges to use the warehouse, perform operations on the database and schema that are specified in the project’s profiles.yml file, and perform operations on any other Snowflake objects that the dbt model specifies.

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

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