2009-06-09 3 views
14
등 10 개에서 사용자를 삭제하는 방법

I는 사용자 즉 DROP 사용자 '사용자 이름'캐스케이드를 삭제하는 명령,오라클은 테이블의 모든 및 데이터 파일

  1. 그것이 사용되는 모든 테이블 스페이스와 데이터 파일을 삭제 하는가를 줄 때 그 특정 사용자가

  2. 그렇지 않은 경우, 특정 사용자가 사용한 모든 테이블 공간/데이터 파일/디스크 공간을 삭제하는 명령은 무엇입니까?

답변

17

사용자를 삭제 한 후에는 관련된 각 테이블 스페이스에 대해 오프라인으로 가져와 삭제해야합니다.

DROP USER SAMPLE CASCADE; 
ALTER TABLESPACE SAMPLE OFFLINE; 
DROP TABLESPACE SAMPLE INCLUDING CONTENTS; 
ALTER TABLESPACE SAMPLE_INDEX OFFLINE; 
DROP TABLESPACE SAMPLE_INDEX INCLUDING CONTENTS; 
+0

감사보고 테이블 스페이스의 목록을 볼 수 있습니다. 나는 이것을 밖으로 시험 할 것이다. 그러나 모든 테이블 스페이스와 데이터 파일이 주어진 사용자와 연관되어 있는지 어떻게 알 수 있습니까? –

+1

먼저 데이터베이스 (존재하는 경우)에 대한 생성 스크립트를 살펴볼 것을 제안합니다. 그렇지 않은 경우 Oracle Enterprise Manager를 사용하면 특정 테이블 등이 저장된 테이블 스페이스를 알 수 있습니다. – Sliff

+0

감사합니다. Oracle Enterprise Manager를 체크인합니다. –

5
DROP USER----> 
DROP USER USER_NAME CASCADE; 
DROP TABLESPACE----> 
DROP TABLESPACE TABLESPACE_NAME INCLUDING CONTENTS AND DATAFILES; 
+1

Stackoverflow에 오신 것을 환영합니다. 귀하의 도움은 정말 감사하지만 코드를 설명하는 것도 도움이 될 것입니다. 감사 –

2

당신은 테이블 공간 인 확인하실 수 있습니다 : 당신이 'SAMPLE'두 개의 테이블 스페이스라는 이름의 사용자가 'SAMPLE'과 'SAMPLE_INDEX'라고했다 예를 들어, 당신은 다음을 수행해야 할 것 다음 쿼리를 사용하는 사용자가 사용합니다.

SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS; 

또한 다음 표 답 Sliff에 대한

DBA_TABLESPACES 
USER_TABLESPACES