데이터베이스 역할: 향후 권한 부여와 함께 데이터베이스 역할 공유가 허용되지 않음

주의

이 동작 변경 사항은 2023_05 번들에 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

향후 권한 부여 및 데이터베이스 역할의 동작은 다음과 같습니다.

이전:

데이터베이스 역할에 향후 권한을 부여하고 데이터베이스 역할을 공유에 부여할 수 있습니다. 다음 두 가지 시나리오가 있습니다.

  1. 데이터베이스 역할에 권한을 부여한 다음 공유에 데이터베이스 역할을 부여합니다.

    GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1;
    GRANT DATABASE ROLE dbr1 TO SHARE myshare;
    
    Copy
  2. 공유에 데이터베이스 역할을 부여한 다음 데이터베이스 역할에 향후 권한을 부여합니다.

    GRANT DATABASE ROLE dbr1 TO SHARE myshare;
    GRANT SELECT ON FUTURE TABLES IN SCHEMA sh TO DATABASE ROLE dbr1;
    
    Copy

다음 명령을 사용하여 보류 중인 변경 사항의 영향을 받는 데이터베이스 역할이 있는지 식별할 수 있습니다.

SHOW FUTURE GRANTS IN DATABASE parent_db;
SHOW FUTURE GRANTS IN shared_schema;
Copy
현재:

데이터베이스 역할이 공유에 부여되면 오브젝트에 대해 향후 권한을 부여할 수 없습니다. Snowflake는 시도하는 시나리오에 따라 고유한 오류 메시지를 반환합니다.

  1. 시나리오 1에서의 오류 메시지는 다음과 같습니다.

    Cannot share a database role with future grants to it.
    

    데이터베이스 역할에서 향후 권한 부여를 취소하려면 REVOKE <권한> 문을 사용하십시오. 필요한 경우 향후 권한 부여를 지정하지 않도록 GRANT <권한> 문을 업데이트합니다. 마지막으로, 데이터베이스 역할을 공유에 부여합니다.

  2. 시나리오 2에서의 오류 메시지는 다음과 같습니다.

    Cannot grant future grants to a database role that is granted to a share.
    

    향후 권한 부여를 지정하지 않도록 GRANT <권한> 문을 수정합니다.

참조: 1144