programing

스키마 이름을 지정하지 않고 테이블에 액세스

lastcode 2023. 8. 10. 18:51
반응형

스키마 이름을 지정하지 않고 테이블에 액세스

라는 스키마가 있습니다.GBO_ARC_SCHEMA내가 한 테이블을 가지고 있는 곳에.TEST_EMP그리고 두 명의 사용자가 말합니다.USER_A그리고.USER_B.

처음에 연결한 것은USER_A그리고 질문 아래에서 해고되었습니다.

select count(*)from TEST_EMP;

count
-----
20

그 후에 저는 다음과 같이 연결했습니다.USER_b쿼리 아래에서 실행되었지만 테이블 또는 보기가 종료되지 않는다는 오류가 발생하고 있습니다.

select count(*)from TEST_EMP;

하지만 내가 사용한다면,scma.object name아래와 같이 질문할 수 있게 해줍니다.

select count(*)from GBO_ARC_SCHEMA.TEST_EMP;

하지만 요구 사항에 따라 스키마 이름을 지정하고 싶지 않습니다.

누가 나 좀 도와줄 수 있어요?

모든 사용자가 스키마 이름을 사용하지 않고 테이블에서 선택할 수 있도록 하려면 공용 동의어를 작성합니다.

create public synonym TEST_EMP for GBO_ARC_SCHEMA.TEST_EMP;

당신이 원한다면,user_b스키마 이름을 생략하려면 user_b의 스키마 내에 개인 동의어를 생성합니다(user_b로 로그온됨).

create synonym TEST_EMP for GBO_ARC_SCHEMA.TEST_EMP;

동의어를 사용하지 않으면 로그인 후 다음을 수행합니다.

alter session set current_schema = GBO_ARC_SCHEMA;

사용 중인 로그인의 서버 역할에서 sysadmin 및 serveradmin 역할을 선택 취소하기만 하면 됩니다.그것으로 해결될 것입니다.

동일한 문제를 가진 Postgres 사용자의 경우

ALTER ROLE <YOUR_USERNAME> SET search_path TO GBO_ARC_SCHEMA;

언급URL : https://stackoverflow.com/questions/21846648/accessing-a-table-without-specifying-the-schema-name

반응형