天天看點

Oracle 檢視使用者,使用者權限,使用者表空間,使用者預設表空間

檢視使用者和預設表空間的關系。 

select username,default_tablespace from dba_users; 

1.檢視表結構:desc表名 

2.檢視目前使用者的表: 

select table_name from user_tables; 

3.檢視所有使用者的表名: 

select table_name from all_tables; 

4.檢視所有表名(其中包括系統表) 

5.檢視所有的表: 

select * from tab/dba_tables/dba_objects/cat; 

下面介紹Oracle查詢使用者表空間 

◆Oracle查詢使用者表空間:select * from user_all_tables 

◆Oracle查詢所有函數和儲存過程:select * from user_source 

◆Oracle查詢所有使用者:select * from all_users.select * from dba_users 

◆Oracle檢視目前使用者連接配接:select * from v$Session 

◆Oracle檢視目前使用者權限:select * from session_privs 

◆Oracle檢視使用者表空間使用情況: 

select a.file_id "FileNo",a.tablespace_name 

"Tablespace_name", 

a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used", 

sum(nvl(b.bytes,0)) "Free", 

sum(nvl(b.bytes,0))/a.bytes*100 "%free" 

from dba_data_files a, dba_free_space b 

where a.file_id = b .file_id(+) 

group by a.tablespace_name , 

a.file_id,a.bytes order by a.tablespace_name; 

1.檢視所有使用者: 

  select * from dba_user; 

  select * from all_users; 

  select * from user_users; 

2.檢視使用者系統權限: 

  select * from dba_sys_privs; 

  select * from all_sys_privs; 

  select * from user_sys_privs; 

3.檢視使用者對象權限: 

  select * from dba_tab_privs; 

  select * from all_tab_privs; 

  select * from user_tab_privs; 

4.檢視所有角色: 

  select * from dba_roles; 

5.檢視使用者所擁有的角色: 

  select * from dba_role_privs; 

  select * from user_role_privs; 

6.檢視角色所擁有的權限: 

  select * from role_sys_privs; 

  select * from role_tab_privs; 

7.檢視所有系統權限 

  select * from system_privilege_map; 

8.檢視所有對象權限 

  select * from table_privilege_map; 

以上是在Oracle中檢視使用者權限 , 

在DB2中為: 

  select * from syscat.dbauth 

  或者 

  get authorizations 

檢視sid 

  select * from v$instance 

1 建立臨時表空間 

2 Sql代碼  

3 create temporary tablespace stbss_tmp   

4 tempfile 'E:\oracle\product\10.2.0\oradata\orcl\stbss_temp01.dbf'   

5 size 32m   

6 autoextend on   

7 next 32m maxsize 2048m   

8 extent management local;  

9  

10 

11 建立資料表空間 

12 Sql代碼  

13 create tablespace stbss   

14 logging   

15 datafile 'E:\oracle\product\10.2.0\oradata\orcl\stbss01.dbf'   

16 size 32m   

17 autoextend on   

18 next 32m maxsize 2048m   

19 extent management local;  

20 

1) DATAFILE: 表空間資料檔案存放路徑 

2) SIZE: 起初設定為32M 

3) UNIFORM: 指定區尺寸,如不指定,區尺寸預設為64k 

4) 空間名稱stbss與資料檔案名稱 stbss.dbf 不要求相同,可随意命名. 

5) AUTOEXTEND ON/OFF 表示啟動/停止自動擴充表空間 

6) alter database datafile ' E:\oracle\product\10.2.0\oradata\orcl\stbss01.dbf ' resize 32m; //手動修改資料檔案大小為32M  

21 

22 建立使用者并指定表空間 

23 Sql代碼  

24 create user username identified by password   

25 default tablespace stbss  

26 temporary tablespace stbss_tmp;   

27  

28 

29 給使用者授予權限 

30 Sql代碼  

31 grant connect,resource to username;  

32  

33  改變使用者預設表空間 

34  

35  

36 Sql代碼  

37 alter user username default tablespace stbss;  

38 

  查詢使用者和表空間之間的關系 

select distinct(owner) ,tablespace_name from dba_segments; 

39 

   向USERS表空間增加一個資料檔案: 

  SQL> alter tablespace users add datafile '/opt/oracle/oradata/eygle/users02.dbf' size 10M; 

  Tablespace altered. 

  SQL> select file#,name from v$datafile; 

  FILE# NAME 

  ---------- -------------------------------------------------- 

  1 /opt/oracle/oradata/eygle/system01.dbf 

  2 /opt/oracle/oradata/eygle/undotbs01.dbf 

  3 /opt/oracle/oradata/eygle/sysaux01.dbf 

  4 /opt/oracle/oradata/eygle/users01.dbf 

  5 /opt/oracle/oradata/eygle/users02.dbf 

  5 rows selected. 

  确認表空間檔案資訊: 

  SQL> select file_name,file_id from dba_data_files where tablespace_name='USERS'; 

  FILE_NAME FILE_ID 

  -------------------------------------------------- ---------- 

  /opt/oracle/oradata/eygle/users02.dbf 5 

  /opt/oracle/oradata/eygle/users01.dbf 4 

确認表空間未被存儲占用: 

  SQL> select segment_name,file_id,blocks from dba_extents where file_id=5; 

  no rows selected 

  删除表空間中的空資料檔案: 

  SQL> alter tablespace users drop datafile '/opt/oracle/oradata/eygle/users02.dbf'; 

  檢查資料字典,這個空檔案的資訊已經被徹底清除了: 

40 以後以該使用者登入,建立的任何資料庫對象都屬于stbss_tmp和stbss表空間,這就不用在每建立一個對象給其指定表空間了 

41  

42 删除oracle臨時表空間 

43  建立一個臨時表空間,然後把資料庫的預設臨時表空間指向建立的這個,等到舊的臨時表空間沒人用的時候,就可以删除了 

44 

45 Sql代碼  

46 --1:檢視資料庫的預設臨時表空間  

47 select property_name, property_value  

48   from database_properties  

49  where property_name = 'default_temp_tablespace';  

50   

51 --2:建立一個新的臨時表空間temp_xxxx  

52 -----參考上面的建立語句  

53 --3:檢視資料庫中有哪些臨時表空間。  

54 select distinct tablespace_name from dba_temp_files;  

55   

56 --4:把預設臨時表空間從temp切換到temp_xxxx  

57 alter database default temporary tablespace temp_xxxx;  

58   

59 --5:再次檢視資料庫的預設臨時表空間  

60 select property_name, property_value  

61   from database_properties  

62  where property_name = 'default_temp_tablespace';  

63   

64 --6:删除原來的臨時表空間  

65 drop tablespace temp;  

删除使用者:test 

drop user test cascade 

删除表空間: 

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES 

删除表: 

delete from users; 

轉載出處:http://shuishiwo.iteye.com/blog/1314119