Data Virtualization 가상 테이블의 뷰에 대한 액세스 권한을 사용자에게 부여할 수 없습니다
userB 이름의 사용자는 Data Virtualization 엔지니어 역할을 가지며 가상 테이블을 기반으로 뷰를 만듭니다. 그러나 userB 은 이 보기에 대한 액세스 권한을 사용자에게 부여할 수 없습니다.
증상
이름이 userA인 사용자는 VIRTUAL_A 가상 테이블을 작성합니다. 이름이 userB인 사용자는 VIRTUAL_A 테이블에서 VIEW_B 보기를 작성합니다. ' 액세스 관리 ' 페이지에서 ' 모든 데이터 가상화 사용자 ' 옵션을 사용하여 모든 ' Data Virtualization ' 사용자에게 ' VIRTUAL_A ' 테이블에 액세스할 수 있는 권한이 부여됩니다.
이름이 userB인 사용자는 VIEW_B뷰에서 userC에 대한 액세스 권한을 부여하려고 시도하지만 다음 예제와 유사한 오류를 가져옵니다.
Code 500: SQLExecute: {42501} [IBM][CLI Driver][DB2/LINUXX8664]
SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation.
Authorization ID: "USERB". Operation: "GRANT". Object: "USERB.VIEW_B". SQLSTATE=42501
원인
userB가 VIEW_B 보기의 작성자이더라도 userB는 테이블 VIRTUAL_A에서 VIRTUAL_A에 종속된 보기의 사용자에게 액세스 권한을 부여하는 데 필요한 권한이 없습니다.
문제점 해결
이 문제를 해결하려면, userA가 SQL 편집기에 다음 명령문을 입력하여 userB에게 테이블 VIRTUAL_A에 대한 액세스 권한을 부여해야 합니다.
GRANT SELECT ON TABLE "schema".VIRTUAL_A TO "userB" WITH GRANT OPTION이 임시 해결책은 모든 데이터 가상화 사용자 옵션을 사용하여 사용자(예에서는 userB)에게 가상 테이블(예에서는 VIRTUAL_A)에 대한 액세스 권한이 부여된 경우에만 필요합니다.