2009-06-09 20 views
14

Khi tôi cung cấp cho các lệnh để thả một người sử dụng tức là thả USER 'username' thác,Làm thế nào để xóa người dùng trong Oracle 10 bao gồm tất cả đó là tablespace và datafiles

  1. Liệu nó xóa tất cả các bảng và datafiles sử dụng bởi người dùng cụ thể đó.

  2. Nếu không, lệnh xóa tất cả không gian bảng/datafiles/dung lượng đĩa được người dùng cụ thể sử dụng là gì.

Trả lời

17

Sau khi bỏ người dùng, bạn cần phải, cho mỗi không gian bảng có liên quan, mang nó vào ngoại tuyến và thả nó. Ví dụ, nếu bạn đã một người dùng có tên 'MẪU' và hai tablespaces gọi là 'MẪU' và 'SAMPLE_INDEX', sau đó bạn sẽ cần phải làm như sau:

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

Cảm ơn câu trả lời của Sliff. Tôi sẽ thử cái này. Nhưng làm thế nào tôi có thể tìm ra tất cả các tablspaces và datafiles được liên kết với một người dùng nhất định. –

+1

Trước tiên, tôi khuyên bạn nên xem qua các tập lệnh tạo cho cơ sở dữ liệu của bạn (nếu có). Nếu không, hãy sử dụng Oracle Enterprise Manager vì điều đó sẽ cho bạn biết bảng nào các bảng cụ thể, vv được lưu trữ. – Sliff

+0

Cảm ơn, tôi sẽ kiểm tra trong Oracle Enterprise Manager. –

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

Chào mừng bạn đến với Stackoverflow. Trợ giúp của bạn thực sự được đánh giá cao nhưng giải thích mã cũng sẽ hữu ích. Cảm ơn –

2

Bạn có thể kiểm tra không gian bảng là được sử dụng bởi người dùng nào có truy vấn sau.

SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS; 

Bạn cũng có thể xem danh sách các không gian bảng bằng cách nhìn vào bảng sau

DBA_TABLESPACES 
USER_TABLESPACES 
Các vấn đề liên quan