본질적으로 할 수 없습니다. 단지이 부여 된
select * from (select USERNAME
FROM SYS.ALL_USERS au
WHERE au.USERNAME != USER
);
브랜드의 새로운 사용자 : 당신이 연결 패널에서 '다른 사용자'섹션을 확장 당신이 SQL Developer의 문 로그를 보면, 당신은 그것을 사용하고 명령이 나타납니다 연결 권한은 해당 시스템보기에서 나열된 모든 사용자를 볼 수 있습니다.
해당 쿼리가 sys
스키마로 all_users
개체 이름을 한정하므로 제한된 목록을 제공하는 사용자의보기 또는 개인 동의어를 만들 수 없습니다. 물론 사용자는 어쨌든 원한다면 그것을 회피 할 수 있습니다.
SQL Developer를 사용하면 연결 창에서 필터링 할 수 있습니다. 당신이 '다른 사용자'를 마우스 오른쪽 버튼으로 클릭하고 선택하면 '필터를 적용 ...'당신과 같은 대화 상자가 나타납니다 :
당신은 '과 일치'로 그를 설정하고 모든 스키마 수를 당신은 더하기 추가하려면 녹색 더하기 기호를 클릭, 표시되고 싶지 않아요. 그런 다음 해당 사용자 만 '다른 사용자'아래에 표시됩니다. 당신이 확장 할 때 '다른 사용자의 문 로그 대신이 수정 된 쿼리를 보여줍니다
select * from (select USERNAME
FROM SYS.ALL_USERS au
WHERE au.USERNAME != USER
) WHERE (UPPER(USERNAME) = (UPPER(:SCHEMA)) OR UPPER(USERNAME) = (UPPER(:SCHEMA0)))
을 ... 그리고는 바인드 매개 변수가
"SCHEMA"="SOUSER1", "SCHEMA0"="SOUSER2"
입니다 보여줍니다하지만 중앙에서 그것을 제어 할 수 없습니다, 당신은 할 것 SQL Developer의 모든 복사본에 설정 (아마도 수동으로 설정 파일을 제공 할 수 있음에도 불구하고 가능)하고 사용자는 필터를 쉽게 제거하거나 변경할 수 있습니다. 그것은 사용자가 아닌 클라이언트에게 영향을 미치며 다시 쉽게 피할 수 있습니다.
우수. 당신의 도움을 주셔서 감사합니다. – ptownbro
@ptownbro - 내 ** 수정 **에 유의하십시오. - 불행히도 PUBLIC은 사용자로부터 떠날 수 없습니다. 유일한 해결책은 PUBLIC의 SYS.ALL_USERS에서 SELECT를 취소하는 것인데, 이는 다른 사용자들에게 (그리고 아마도 그 테이블에 액세스해야하는 프로세스와 응용 프로그램에) 불쾌한 영향을 미칠 수 있습니다. – mathguy