1.徹底删除某個表空間下面的所有表
方法1:
SELECT 'DROP TABLE '||TABLE_NAME||';'||'purge' FROM user_tables WHERE TABLESPACE_NAME='TESTTBS';
得到的drop
select original_name,dropscn from recyclebin;--檢視資源回收筒裡面的表
purge recyclebin;--清空資源回收筒
flashback table tablename to before drop;--将表狀态變成drop前
drop table tablename purge;--側地删除某個表
select*from user_tables where tablespace_name='ETRTBS'--檢視etrtbs表空間下的所有表
方法2:
drop tablespace tablespacename including contents and datafiles cascade constraints;--删除表空間 然後手動删除資料檔案
create tablespace tablespacename datafile ' E:\oracle\product\10.2.0\oradata\ibn\ABSTBS.dbf' size 4096m autoextend on next 1024m;--建立表空間,指定資料檔案
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;--檢視表空間的資料檔案大小
select tablespace_name,sum(bytes)/1024/1024 from dba_free_spacegroup by tablespace_name;--檢視表空間空閑的資料檔案大小
2.簡單的ORACLE備份
遠端邏輯備份資料庫
exp userid='sys/oracle141242@ibn as sysdba' file=d:\fbackup.dmp log=dible full=y
--将資料庫完全導出,在導入的時候可以通過設定formuser來恢複需要的資料(語句結尾不能加符号)
exp abs/abs@abshrp file=e:\backup\abs.dmp owner=abs
--将資料庫中abs使用者下的所有對象導出
Imp abs/abs@ibn file= e:\backup\backup.dmp fromuser=abs touser=abs
--将資料從datafile某個使用者中導入到本地資料庫中某個使用者下
Imp etr/abs@ibn file= E:\backup\backup.dmp tables=(表名1,表名2,表名3...)
--将備份檔案中某些指定的表導入到本地庫對應的使用者下面
3.建立使用者
create user abs --建立使用者名
identified by "abs"--密碼
default tablespace ABSTBS --預設表空間
temporary tablespace TEMP --臨時表空間
profile DEFAULT;
grant connect to abs;-- 授予建立的使用者權限
grant dba to abs;--授予dba權限
grant resource to abs; --授予使用者建立各種資源的權限,建表,存儲過程等
grant unlimited tablespace to abs;--可以在其他表空間随意建表
oracle使用者等價于模式,是以删除使用者後,所有的對象,包括表、視圖、存儲過程等等等會全部被删除
4.某個使用者檢視别的使用者下面表沒有權限問題
執行存儲過程時,本使用者檢視别的使用者下面的表一般會提示表或視圖不存在.
得用如下方法授予權限
grant select, insert, update, delete on ETR_BRANCH to ABS;--授權ABS使用者有增删改查ETR_BRANCH表的權限
grant select on ETR_BRANCH to PUBLIC;--授權所有使用者有檢視ETR_BRANCH表的權限
GRANT delete ANY TABLE TO 存儲過程所在使用者 WITH ADMIN OPTION;
GRANT insert ANY TABLE TO 存儲過程所在使用者 WITH ADMIN OPTION;
GRANT select ANY TABLE TO 存儲過程所在使用者 WITH ADMIN OPTION;