2012-08-23 3 views
1

나는 다음을 수행 H2에서 스크립트 실행 해요이라고 생각 :H2 데이터베이스 부여 시퀀스는 테이블

create role admin_role; 
create user app_user password 'password' ; 

grant admin_role to app_user; 

create sequence from_event_seq; 
grant select on from_event_seq to admin_role; 

을 실망스럽게도이 작동하지 않습니다와 나는 다음과 같은 오류 얻을 :

[Error Code: 42102, SQL State: 42S02] Table "FROM_EVENT_SEQ" not found; SQL statement: grant select on from_event_seq to admin_role [42102-154] 

을 이상한 점은 오류 메시지가 테이블에 부여하려고한다고 생각하는 것입니다 (42102는 테이블을 찾을 수없는 오류 임). 또한 실제로 시퀀스를 쿼리 할 수 ​​있으며 작동합니다 (즉, 시퀀스가 ​​생성되었음을 의미합니다). H2의 권한 부여 구문은 권한 부여를 적용해야하는 오브젝트 유형을 지정하지 않습니다.

무엇이 누락 되었습니까?

답변

3

H2 문서를 조금 더 자세히 읽으면 (here 참조) h2의 'grant right'문은 표에만 적용됩니다. 따라서 오류. 내가 단위 테스트를 위해 H2를 사용하고 스크립트가 오라클에서 실행되기를 바란다면 당분간 보조금을 건너 뛰면됩니다. .

+0

@DaveRlz - 내 답변이 유용하다는 것이 입증 되었기 때문에 내 자신의 질문을 업데이트하게되어 기쁩니다! – DaveRlz

관련 문제