ORA-01031: 보기 선택 시 권한 부족
다른 스키마의 테이블이 포함된 보기를 실행하려고 하면 ORA-001031 불충분한 권한이 느려집니다.이 테이블에는 보기가 작성된 스키마에 대한 실행 권한이 있습니다.보기의 SQL 문을 실행하면 작동합니다.제가 무엇을 빠뜨리고 있나요?
마침내 저는 그것을 작동시켰습니다.스티브의 대답이 옳지만 모든 경우에 맞는 것은 아닙니다.이 보기가 세 번째 스키마에서 실행될 때 실패합니다.이 기능이 작동하려면 허가 옵션을 추가해야 합니다.
GRANT SELECT ON [TABLE_NAME] TO [READ_USERNAME] WITH GRANT OPTION;
그와 같이,[READ_USERNAME]
또한 다른 스키마에 보기에 대한 선택 권한을 부여할 수 있습니다.
테이블 소유자로서 SELECT 문을 실행 중인 사용자에게 기본 테이블에 대한 SELECT 권한을 부여해야 합니다.
grant SELECT on TABLE_NAME to READ_USERNAME;
Q. "보조금 옵션 포함"은 언제 필요합니까?
A. 세 번째 스키마에서 실행된 보기가 있는 경우.
예: 스키마 DSDSW에는 view_name이라는 뷰가 있습니다.
a) that view selects from a table in another schema (FDR.balance)
b) a third shema X_WORK tries to select from that view
일반적인 권한 부여: select on dsdw.view_name을 dsdw_select_role에 부여; dsdw_select_role을 fdr에 부여;
그러나: fdr은 dsdw.view_name에서 select count(*)를 가져옵니다. 줄 1의 ERROR: ORA-01031: 권한 부족
보조금 지급:
grant select on fdr.balance to dsdw with grant option;
이제 fdr: dsdw.view_name에서 카운트 선택((*); 5개 행
다시 한 번 정리해 보겠습니다.
다른 소유자의 개체를 포함하는 보기를 작성할 때 다른 소유자는 보기의 소유자에게 "권한 부여 옵션 포함"을 부여해야 합니다.따라서 보기 소유자는 다른 사용자나 스키마에 권한을 부여할 수 있습니다.
예:User_a는 mine_aUser_b라는 테이블의 소유자입니다.
user_b가 my_a와 your_b의 결합으로 보기를 만들고 싶다고 가정해 보겠습니다.
보기가 정상적으로 작동하려면 user_a가 "grant select on mine_a to user_b with grant option"을 지정해야 합니다.
그러면 user_b는 모든 사용자에게 해당 보기에 대한 선택 권한을 부여할 수 있습니다.
저장 프로시저를 통해 보기에 액세스하는 경우, 실행 허가가 보기에 액세스하기에 충분하지 않습니다.선택을 명시적으로 허용해야 합니다.
저장 프로시저를 통해 보기에 액세스하는 경우, 실행 허가가 보기에 액세스하기에 충분하지 않습니다.선택을 명시적으로 허용해야 합니다.
이것을 간단히 타이핑합니다.
모든 것을 대중에게 부여합니다.
보기를 사용하려면 사용자에게 적절한 권한이 있어야 하지만 기본 개체가 아닌 보기 자체에 대해서만 권한이 있어야 합니다.그러나 보기의 기본 개체에 대한 액세스 권한이 제거되면 사용자는 더 이상 액세스할 수 없습니다.이 동작은 사용자가 보기를 쿼리할 때 사용되는 보안 도메인이 보기 정의자의 도메인이기 때문에 발생합니다.기본 개체에 대한 권한이 뷰의 정의자에서 취소되면 뷰가 비활성화되고 아무도 뷰를 사용할 수 없습니다.따라서 사용자에게 뷰에 대한 액세스 권한이 부여된 경우에도 뷰의 기본 객체에서 정의자 권한이 취소된 경우에는 뷰를 사용할 수 없습니다.
Oracle 설명서 http://docs.oracle.com/cd/B28359_01/network.111/b28531/authorization.htm#DBSEG98017
또한 스키마 이름으로 뷰를 생성할 수 있습니다. 예를 들어 뷰 schema_name.view_name을 select로 바꾸거나 만들 수 있습니다.
언급URL : https://stackoverflow.com/questions/140643/ora-01031-insufficient-privileges-when-selecting-view
'programing' 카테고리의 다른 글
SQL COUNT 오버플로 (0) | 2023.07.16 |
---|---|
Python argparse 입력 인수에 대한 날짜 형식 지정 (0) | 2023.07.16 |
파이썬 프로젝트에는 MANIFEST.in 이 필요하며, 그 안에 무엇이 있어야 합니까? (0) | 2023.07.16 |
Oracle: 현재 날짜에 6개월을 추가하는 방법 (0) | 2023.07.16 |
목표 C에서 변수 위치의 선언/정의? (0) | 2023.07.16 |