액세스 권한 부여

용도

access_grant: access_grant_name {
user_attribute: user_attribute_name
allowed_values: [ "value_1", "value_2" , ... ]
}
계층 구조
access_grant
기본값
없음

결제 가능
user_attribute 하위 매개변수가 있는 사용자 속성 이름 및 allowed_values 하위 매개변수가 있는 사용자 속성 값 목록

정의

액세스 권한 부여는 다른 LookML 구조, 특히 탐색, 조인, 뷰, 필드에 대한 액세스를 제어하는 LookML 구조입니다. access_grant 매개변수는 액세스 권한 부여를 정의합니다.

access_grantuser_attribute 하위 매개변수가 있는 사용자 속성의 이름과 allowed_values 하위 매개변수가 있는 사용자 속성에 허용되는 값 목록을 가져옵니다. 지정된 사용자 속성에 허용된 값 중 하나가 할당된 사용자만 액세스 권한이 필요한 구조에 액세스할 수 있습니다.

정의된 후에는 탐색, 조인, 보기 또는 필드 수준에서 required_access_grants 매개변수를 사용하여 이러한 구조에 액세스하는 데 필요한 액세스 권한을 부여할 수 있습니다.

예를 들어 아래의 LookML은 department 사용자 속성을 기반으로 can_view_financial_data라는 액세스 권한 부여를 만듭니다. department 사용자 속성에서 "finance" 또는 "executive" 값이 할당된 사용자에게만 can_view_financial_data 액세스 권한 부여:

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

그런 다음 required_access_grants 매개변수를 사용하여 can_view_financial_data 액세스 권한 부여를 LookML 구조와 연결합니다.

dimension: financial_data_field
  ...
  required_access_grants: [can_view_financial_data]
}

위의 예에서는 can_view_financial_data 액세스 권한 부여에 적절한 사용자 속성 값을 가진 사용자만 financial_data_field 측정기준을 볼 수 있습니다.

모델에서 여러 개의 액세스 권한 부여를 정의할 수 있으며, required_access_grants 매개변수를 사용하여 LookML 구조에 여러 개의 액세스 권한 부여를 할당할 수 있습니다. 이 경우 사용자가 지정된 액세스 권한 모두에 액세스할 수 있어야 LookML 구조에 액세스할 수 있습니다.

예를 들어 아래의 LookML은 서로 다른 두 가지 액세스 권한 부여를 정의합니다.

access_grant: can_view_financial_data {
  user_attribute: department
  allowed_values: [ "finance", "executive" ]
}

access_grant: can_view_payroll_data {
  user_attribute: view_payroll
  allowed_values: [ "yes" ]
}

그런 다음 아래의 뷰 파일에서 required_access_grants 매개변수는 두 액세스 권한을 모두 지정합니다.

view: payroll {
  ...
  required_access_grants: [can_view_financial_data, can_view_payroll_data]
}

이 경우 department 사용자 속성에 값 "finance" 또는 "executive" 값이 할당되어 있고 그리고 view_payroll 사용자 속성에 "yes" 값이 할당된 사용자만 뷰에 액세스할 수 있습니다.

Examples

사용자에게 engineering 액세스 권한 부여를 위해 department 사용자 속성의 값 "product_management" 또는 값 "engineering"을 보유해야 하는 액세스 권한 부여를 정의합니다.

access_grant: engineering {
  user_attribute: department
  allowed_values: [ "product_management", "engineering" ]
}

숫자 또는 날짜/시간 데이터를 사용하는 사용자 속성으로 액세스 권한 부여를 정의할 수도 있습니다. 이렇게 하려면 문자열과 마찬가지로 허용되는 값을 큰따옴표로 묶어야 합니다. 예를 들어 다음 액세스 권한 부여는 숫자데이터 유형을 가진 id 사용자 속성을 참조합니다. id 값이 1, 2, 3, 4 또는 5인 사용자에게만 액세스 권한이 부여됩니다.

access_grant: user_id {
  user_attribute: id
  allowed_values: ["1", "2", "3", "4", "5"]
}

다음 예는 데이터 유형 날짜/시간을 가진 사용자 속성 start_date를 참조합니다. 사용자 속성에 값이 2020-01-01인 사용자에게만 액세스 권한이 부여됩니다.

access_grant: start_date {
  user_attribute: start_date
  allowed_values: ["2020-01-01"]
}

고려사항

사용자가 수정할 수 있는 사용자 속성은 액세스 권한 부여에 허용되지 않습니다.

액세스 권한 부여는 사용자 액세스 수준수정인 사용자 속성을 허용할 수 없습니다. 사용자는 계정 페이지에서 사용자 액세스 수준이 수정인 사용자 속성 값을 확인하고 수정할 수 있습니다. 보안을 위해 access_grant에서 사용자 액세스 수준이 없음 또는 보기인 사용자 속성만 허용됩니다.

allowed_values에 나열된 값은 사용자 속성 값과 정확하게 일치해야 합니다.

access_grant문자열 필터 (고급), 숫자 필터 (고급), 날짜/시간 필터 (고급) 데이터 유형의 사용자 속성에서 작동합니다. 하지만 액세스 권한을 부여하려면 allowed_values 매개변수에 나열된 값이 정확히 사용자 속성 값과 일치해야 합니다.

예를 들어 데이터 유형 숫자 필터(고급)numeric_range이라는 사용자 속성을 만든 경우 Looker 필터 표현식을 사용하여 숫자 범위(예: [1, 20])를 입력할 수 있습니다. 이 예에서 사용자 속성의 Looker 필터 표현식은 1에서 20(포함) 사이의 숫자 범위를 반환합니다. 그러나 access_grant에는 완전 일치가 필요하므로 allowed_values: ["10"] 매개변수를 사용하면 액세스 권한이 부여되지 않습니다. 액세스 권한을 부여하려면 allowed_values: ["[1, 20]"]를 사용해야 합니다.

이는 값이 여러 개인 사용자 속성의 경우에도 마찬가지입니다. 예를 들어 1, 3, 5 값이 있는 데이터 유형 숫자 필터 (고급)의 사용자 속성은 allowed_values: ["1, 3, 5"] 매개변수와 함께 액세스 권한과만 일치합니다. 마찬가지로 allowed_values: ["1"] 매개변수를 가진 액세스 권한 부여는 사용자 속성에 여러 값을 가진 사용자에게 액세스 권한을 부여하지 않습니다. allowed_values: ["1", "3", "5"] 매개변수가 있는 액세스 권한도 이 사용자에게 액세스 권한을 부여하지 않습니다. allowed_values: [] 매개변수가 여러 값을 허용할 수 있지만 allowed_values: ["1", "3", "5"] 매개변수의 3가지 값이 사용자 속성 값 1, 3, 5과 정확히 일치하지 않기 때문입니다. 이 경우 사용자 속성 값이 1, 3 또는 5인 사용자에게는 액세스 권한이 부여됩니다. 각 값이 allowed_values: ["1", "3", "5"] 매개변수의 옵션 중 하나와 일치하기 때문입니다.

마찬가지로 access_grant는 데이터 유형 문자열 필터 (고급)의 사용자 속성과 정확하게 일치해야 합니다. 일반적인 Looker 필터 표현식과 달리 allowed_values: [ "Ca%" ] 매개변수를 사용하면 사용자 속성이 Canada 또는 California 값과 일치하지 않습니다. 정확히 Ca%인 사용자 속성 값만 일치하며 액세스 권한이 부여됩니다.

액세스 권한이 부여되지 않은 사용자는 LookML 구조에 따라 다른 동작을 경험함

액세스 권한 부여에 대한 액세스 권한이 없는 사용자의 경우 액세스하려는 LookML 구조에 따라 다른 동작을 경험합니다. 이러한 구조에 대한 액세스가 어떻게 제한되는지 알아보려면 탐색, 조인, 보기 또는 필드 수준의 required_access_grants 문서 페이지를 참고하세요.

여러 수준의 액세스 권한이 함께 추가됩니다.

액세스 권한을 중첩하면 액세스 권한 부여는 추가됩니다. 예를 들어 뷰에 required_access_grants를 생성하고 뷰 내부에 필드 required_access_grants 만들 수 있습니다. 이 필드를 보려면 필드 뷰에 대한 액세스 권한이 사용자에게 부여되어 있어야 합니다. 조인의 경우에도 마찬가지입니다. 조인에서 뷰에 대한 required_access_grants를 생성하고 이 두 뷰의 조인에 대해서도 required_access_grants를 생성하는 경우, 사용자가 조인된 뷰를 보려면 뷰와 조인 모두에 대한 액세스 권한이 부여되어야 합니다.

제한된 구조를 참조하는 구조 액세스

사용자는 액세스 권한이 없는 LookML 객체가 포함된 Look 또는 대시보드에 액세스할 수 있습니다. 이러한 상황에서는 해당 LookML 객체가 모델에서 삭제된 것처럼 Look 또는 대시보드가 표시됩니다.

조인 A, 뷰 A, 필드 A가 포함된 탐색 A가 있다고 가정해 보겠습니다. 다음으로, 탐색 A에 액세스 제한을 적용합니다. 예상대로 A에 가입하고 A를 보는 경우 A는 사용자가 A와 상호작용하는 경우에만 이러한 제한사항을 상속받습니다. 조인 A, 뷰 A 또는 필드 A를 다른 탐색 B에서 사용하는 경우에는 액세스 제한이 없을 수도 있습니다. 따라서 LookML 요소를 재사용하려면 가능한 가장 낮은 수준에서 액세스 제한을 적용하는 것이 좋습니다.