GRANT DATABASE ROLE … TO SHARE¶
공유에 데이터베이스 역할을 부여합니다. 데이터베이스 역할을 부여하면 단일 데이터베이스에 대한 권한이 공유에 효과적으로 추가되며, 그런 다음 이 권한을 하나 이상의 컨슈머 계정과 공유할 수 있습니다.
컨슈머는 공유에서 데이터베이스를 생성한 후 계정의 역할에 공유 데이터베이스 역할을 부여하여 해당 역할을 가진 사용자가 공유의 데이터베이스 오브젝트에 액세스하도록 허용할 수 있습니다.
자세한 내용은 Secure Data Sharing 소개 및 공유 관련 작업하기 섹션을 참조하십시오.
구문¶
GRANT DATABASE ROLE <name>
TO SHARE <share_name>
매개 변수¶
name
데이터베이스 역할의 식별자(즉, 이름)를 지정하며, 역할이 생성되는 데이터베이스에서 고유해야 합니다.
식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예:
"My object"
)로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.식별자가
db_name.database_role_name
형식으로 정규화되지 않은 경우 이 명령은 세션의 현재 데이터베이스에서 데이터베이스 역할을 찾습니다.share_name
지정된 데이터베이스 역할이 부여된 원본 공유의 식별자를 지정합니다.
사용법 노트¶
DDL 또는 기타 제한된 권한이 데이터베이스 역할에 부여된 경우 공유에 대한 데이터베이스 역할 부여가 실패합니다. 데이터베이스 역할은 데이터베이스와 해당 오브젝트에 대한 읽기 전용 활동을 위한 권한만 부여할 수 있습니다.
공유 데이터베이스 역할은 향후 권한 부여를 지원하지 않습니다. Snowflake는 사용자가 수행하는 작업에 따라 다음과 같은 오류 메시지를 반환합니다.
오브젝트에 대한 향후 권한을 데이터베이스 역할에 부여하고 데이터베이스 역할을 공유에 부여합니다.
GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1; GRANT DATABASE ROLE dbr1 TO SHARE myshare;
CopyCannot share a database role with future grants to it.
데이터베이스 역할을 공유에 부여하고 오브젝트에 대한 향후 권한을 데이터베이스 역할에 부여합니다.
GRANT DATABASE ROLE dbr1 TO SHARE myshare; GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1;
CopyCannot grant future grants to a database role that is granted to a share.
이러한 오류 메시지를 방지하려면 다음 명령을 사용하여 데이터베이스 역할과 관련된 향후 권한 부여가 있는지 파악하십시오.
SHOW FUTURE GRANTS IN DATABASE parent_db; SHOW FUTURE GRANTS IN shared_schema;
Copy
예¶
데이터베이스 d1
에서 공유 share1
에 데이터베이스 역할 dr1
을 부여합니다.
GRANT DATABASE ROLE d1.dr1 TO SHARE share1;Copy