오브젝트 보안: 오류 메시지의 정보 삭제: 오류 메시지의 정보 삭제¶
보안 오브젝트와 관련된 오류 메시지는 다음과 같이 동작합니다.
- 변경 전:
보안 오브젝트와 관련된 오류 메시지는 전체 메시지를 표시합니다.
- 변경 후:
보안 오브젝트와 관련된 오류 메시지가 삭제될 수 있습니다.
이 변경 사항은 다음 유형의 오브젝트와 관련된 오류 메시지에 적용됩니다.
보안 함수 (보안 테이블 함수 포함)
보안 오브젝트에 대한 자세한 내용은 보안 오브젝트를 사용하여 데이터 액세스 제어하기 섹션을 참조하십시오.
보안 오브젝트의 확장 또는 평가 중에 오류가 감지되면 오류 메시지를 삭제할 수 있습니다. 오류 메시지를 수정해도 오류 코드는 변경되지 않습니다.
오류 메시지에 대한 변경은 실행 중 수정과 실행 후 메타데이터 수정의 두 가지 유형이 가능합니다. 이러한 유형의 변경 사항은 다음 섹션에서 설명합니다.
실행 중 수정¶
작업 중 오류가 반환되면 전체 오류 메시지 또는 오류 메시지의 일부를 수정할 수 있습니다. 일반적으로 이러한 유형의 오류 메시지 수정은 사용자가 보안 오브젝트에 대한 OWNERSHIP 권한이 없는 상태에서 보안 오브젝트를 사용하려고 할 때 발생합니다.
실행 후 메타데이터 수정¶
사용자는 오류 메시지 등 오류 발생 후 오류에 대한 메타데이터를 볼 수 있습니다. 예를 들어, 사용자는 Snowsight의 Query History 페이지에서 이 메타데이터를 보거나 Snowflake Information Schema 에서 뷰를 쿼리하고 함수를 호출하여 이 메타데이터를 볼 수 있습니다. 실행 중에 오류 메시지가 삭제되면 모든 사용자의 실행 후 메타데이터에서 오류 메시지가 항상 삭제됩니다.
실행 중에 오류 메시지가 수정되지 않으면 일부 사용자의 메타데이터에는 메시지가 변경되지 않은 상태로 표시되고 다른 사용자에게는 수정된 상태로 표시됩니다. 다음 중 하나에 해당하는 경우 오류 메시지는 메타데이터에서 변경되지 않습니다.
메타데이터를 보는 사용자는 AUDIT 권한이 있습니다.
메타데이터를 뷰하는 사용자의 ENABLE_UNREDACTED_SECURE_OBJECT_ERROR 사용자 매개 변수가
TRUE로 설정되어 있습니다. AUDIT 권한이 있는 사용자는 사용자에 대해 이 매개 변수를 설정할 수 있습니다.메타데이터를 보는 사용자가 오류를 일으킨 문을 실행했습니다.
다른 모든 경우에는 오류 메시지가 메타데이터에서 삭제됩니다. 수정된 오류 메시지에는 Error in secure object 라는 텍스트가 포함됩니다.
오류 메시지 수정의 예¶
다음 예는 수정된 오류 메시지를 보여줍니다. 실행 중 또는 실행 후 메타데이터에서 수정이 발생할 수 있습니다.
예 1: 보안 뷰 쿼리하기¶
다음 예에서는 보안 뷰에 대한 SELECT 권한이 있는 사용자가 오류를 반환하는 뷰에 대한 쿼리를 실행합니다.
보안 뷰를 만듭니다.
뷰 쿼리에 사용된 테이블을 삭제합니다.
뷰에서 쿼리를 실행합니다.
변경 전 모든 사용자에게 표시되는 오류 메시지¶
변경 후 일부 사용자에게 표시되는 오류 메시지가 수정되었습니다¶
예 2: 보안 함수를 호출하는 쿼리 실행하기¶
다음 예에서는 보안 함수에 대한 USAGE 권한이 있는 사용자가 보안 함수를 호출하는 쿼리를 실행하지만 보안 함수가 오류를 반환합니다.
예 2a: 함수 인자로 인해 오류 발생¶
보안 함수를 만듭니다.
보안 함수를 호출하는 쿼리를 실행합니다.
변경 전 모든 사용자에게 표시되는 오류 메시지¶
변경 후 일부 사용자에게 표시되는 오류 메시지가 수정되었습니다¶
예 2b: 함수가 종속된 오브젝트가 삭제됨¶
보안 함수를 만듭니다.
함수에 사용된 테이블을 삭제합니다.
보안 함수를 호출하는 쿼리를 실행합니다.
변경 전 모든 사용자에게 표시되는 오류 메시지¶
변경 후 일부 사용자에게 표시되는 오류 메시지가 수정되었습니다¶
예 3: 마스킹 정책이 오류 반환¶
다음 예에서는 사용자가 마스킹 정책이 있는 뷰에서 쿼리를 실행하여 오류가 발생하는 경우입니다.
마스킹 정책을 만듭니다.
뷰를 만들고 뷰의 열에 마스킹 정책을 설정합니다.
마스킹 정책에 사용된 테이블을 삭제합니다.
마스킹 정책에 대한 소유권 권한이 없는 사용자로 뷰에 대한 쿼리를 실행합니다.
변경 전 모든 사용자에게 표시되는 오류 메시지¶
변경 후 일부 사용자에게 표시되는 오류 메시지가 수정되었습니다¶
예 4: 행 액세스 정책이 오류 반환¶
다음 예에서는 사용자가 행 액세스 정책이 있는 뷰에서 쿼리를 실행하고 오류가 발생합니다.
행 액세스 정책을 생성합니다.
뷰를 만들고 뷰에 행 액세스 정책을 추가합니다.
행 액세스 정책에 사용된 테이블을 삭제합니다.
행 액세스 정책에 대한 OWNERSHIP 권한이 없는 사용자로 뷰를 쿼리합니다.
변경 전 모든 사용자에게 표시되는 오류 메시지¶
변경 후 일부 사용자에게 표시되는 오류 메시지가 수정되었습니다¶
참조: 1858