USE SECONDARY ROLES
USE SECONDARY ROLES
세션의 활성/현재 보조 역할(secondary role)을 지정하는 명령이에요. 현재 활성 보조 역할은 현재 사용자가 SQL 작업을 수행하는 데 필요한 권한을 가지는지 결정하는 컨텍스트를 설정해요.
출처: 문서
본문
세션의 활성/현재 보조 역할을 지정해요. 현재 활성 보조 역할은 현재 사용자가 SQL 작업을 수행하는 데 필요한 권한을 가지는지 결정하는 컨텍스트를 설정해요. 객체를 만들기 위한 CREATE <object> 문을 실행하는 승인은 기본 역할(primary role)이 제공한다는 점에 주의해요. 자세한 내용은 보조 역할 적용(secondary role enforcement)을 참고해요.
구문
USE SECONDARY ROLES {
ALL
| NONE
| <role_name> [ , <role_name> ... ]
}
매개변수
ALL
현재 활성 기본 역할 외에 사용자에게 부여된 모든 역할이에요. 역할 집합은 각 SQL 문이 실행될 때 재평가된다는 점에 주의해요. 사용자에게 추가 역할이 부여되고 그 사용자가 새 SQL 문을 실행하면, 새로 부여된 역할은 새 SQL 문에 대한 활성 보조 역할이 돼요. 사용자에게서 회수된 역할에도 같은 논리가 적용돼요.
NONE
보조 역할을 비활성화해요. 모든 SQL 작업에 대한 승인은 기본 역할을 통해 제공돼요.
role_name [ , role_name ... ]
지정된 역할을 보조 역할로 활성화해요. 보조 역할은 사용자 정의 계정 역할 또는 시스템 역할일 수 있어요. Snowflake에 저장된 대로 역할 이름을 지정해요. 식별자에 공백이나 특수 문자가 포함되면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요. 자세한 내용은 식별자 요건(Identifier requirements)을 참고해요.
사용 메모
개별 역할 이름을 지정할 때:
- 각 명명된 역할이 현재 사용자에게 부여되어 있어야 해요. 명령은 각 지정된 역할을 즉시 검증해요. 어떤 역할이 부여되지 않았으면 명령은 오류로 실패해요.
- 명령은 세션에 대한 원하는 보조 역할 집합을 기록해요. 각 후속 SQL 문에 대해 활성화된 역할은 원하는 집합의 부분집합일 수 있어요. 예를 들어 세션 정책이 특정 보조 역할을 제한하는 경우가 그래요.
ALL을 지정할 때:
- 명령은 역할 부여를 미리 검증하지 않아요. 대신 활성 보조 역할은 각 SQL 문이 실행될 때 동적으로 결정돼요. 이는 새로 부여된 역할이 자동으로 활성화되고, 회수된 역할은 더 이상 활성화되지 않으며, 명령을 다시 실행할 필요가 없음을 의미해요.
- 세션 정책이 활성화할 수 있는 보조 역할을 제한하면, 명령은 여전히 성공하지만 활성화된 보조 역할이 정책에 의해 제한될 것임을 나타내는 정보 메시지를 반환할 수 있어요.
예제
USE SECONDARY ROLES ALL;
USE SECONDARY ROLES test_role_1, test_role_2;
더 알아보기 (Learn more)
- See also: USE ROLE