액세스 제어 문제 해결하기¶
쿼리를 실행하는 데 사용되는 역할에 필요한 액세스 제어 권한이 부족하여 SQL 문이 실패하는 경우 EXPLAIN_PRIVILEGES 함수를 사용하여 누락된 권한을 정확히 확인할 수 있습니다.
관리자로 문제 해결하기¶
Snowflake의 모든 오브젝트에 대한 권한이 있는 관리자는 SQL 문에 대한 EXPLAIN_PRIVILEGES 함수를 호출할 수 있습니다.
팁
오브젝트에 대한 권한이 없는 사용자가 EXPLAIN_PRIVILEGES를 사용하여 액세스 제어 문제를 진단할 수 있도록 하려면 RESOLVE ALL ON ACCOUNT 권한을 부여합니다.
예: SQL 문을 실행하는 데 필요한 모든 권한 나열
출력 예:
이 출력은 데이터베이스에 대한 MYDB AND 권한 및 스키마 MYDB.MYSCHEMA``에 대한 ``MONITOR 권한이 필요함을 나타냅니다.
예: 특정 역할에 대해 누락된 권한 나열
다음 호출은 ``analyst_role``(부여된 역할의 권한 포함)에 SELECT 문을 실행하는 데 필요한 권한이 있는지 여부를 확인하며, 없는 경우 누락된 권한을 반환합니다.
자체 쿼리 문제 해결하기¶
EXPLAIN_PRIVILEGES 함수를 호출하려면 쿼리에서 참조되는 오브젝트에 대해 하나 이상의 권한이 있어야 합니다. 오브젝트에 대한 이러한 권한이 쿼리를 성공적으로 실행하기에 충분하지 않은 경우 missing_only 인자를 ``true``로 설정하여 EXPLAIN_PRIVILEGES 함수를 호출해 필요한 추가 권한을 결정합니다.
예를 들어 mydb, myschema, mytable 오브젝트에 대한 권한이 있지만 액세스 제어 문제로 인해 쿼리가 계속 실패하는 경우 다음 명령을 실행합니다.
현재 역할에 권한이 없는 경우 함수는 필요한 특정 권한을 반환합니다. 예: