GRANT DATABASE ROLE … TO SHARE

공유에 데이터베이스 역할을 부여합니다. 데이터베이스 역할을 부여하면 단일 데이터베이스에 대한 권한이 공유에 효과적으로 추가되며, 그런 다음 이 권한을 하나 이상의 컨슈머 계정과 공유할 수 있습니다.

컨슈머는 공유에서 데이터베이스를 생성한 후 계정의 역할에 공유 데이터베이스 역할을 부여하여 해당 역할을 가진 사용자가 공유의 데이터베이스 오브젝트에 액세스하도록 허용할 수 있습니다.

자세한 내용은 Secure Data Sharing 소개공유 관련 작업하기 섹션을 참조하십시오.

참고 항목:

REVOKE DATABASE ROLE … FROM SHARE

구문

GRANT DATABASE ROLE <name>
  TO SHARE <share_name>
Copy

매개 변수

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;
      
      Copy
      Cannot 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;
      
      Copy
      Cannot 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