欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle表空間與權(quán)限的深入講解

 更新時間:2021年11月15日 15:37:06   作者:鐘文濤  
Oracle表空間(tablespaces)是一個邏輯的概念,真正存放數(shù)據(jù)的是數(shù)據(jù)文件(data files),下面這篇文章主要給大家介紹了關(guān)于Oracle表空間與權(quán)限的相關(guān)資料,需要的朋友可以參考下

表空間

表空間是數(shù)據(jù)庫的邏輯劃分,一個表空間只能屬于一個數(shù)據(jù)庫。所有的數(shù)據(jù)庫對象都存放在指定的表空間中。但主要存放的是表,所以稱作表空間。

Oracle中很多優(yōu)化都是基于表空間的設(shè)計理念而實現(xiàn)的,一個數(shù)據(jù)庫可以包含多個表空間,一個表空間只能屬于一個數(shù)據(jù)庫。一個表空間包含多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只能屬于一個表空間。

Oracle 數(shù)據(jù)庫中至于存放一個表空間,即SYSTEM的表空間。

表空間的典型應(yīng)用

  1. 控制用戶所占用的表空間配額
    1. 建立不同的表空間,為其設(shè)置最大的存儲容量,然后把用戶歸屬于這個表空間。如此的話,這個用戶的存儲容量,就受到這個表空間大小的限制。
  2. 控制數(shù)據(jù)庫所占用的磁盤空間
  3. 靈活放置表空間,提高數(shù)據(jù)庫的輸入輸出性能。
    1. 可以將不同類型的數(shù)據(jù)放置不同的表空間中,比如與湖南省相關(guān)的數(shù)據(jù)文件就放置在湖南省的這個表空間中。北京的就放在北京這個表空間中。
  4. 大表的排序操縱
    1. 針對這種容量比較大的表對象,往往把它放在一個獨立的表空間,以提高數(shù)據(jù)庫性能。

默認(rèn)表空間

系統(tǒng)中默認(rèn)創(chuàng)建的幾個表空間

  1. SYSTEM
    1. 所有的dictionary object都存在SYSTEM表空間里面,存在SYS用戶的表,視圖,存儲過程對象。
  2. SYSAUX
    1. 作為SYSTEM表空間的輔助表空間,減輕SYSTEM表空間負(fù)荷。
  3. USERS
    1. 存儲用戶創(chuàng)建的數(shù)據(jù)庫對象
  4. UNDOTBS
    1. 存儲撤銷信息的undo表空間。
  5. EXAMPLE
    1. 數(shù)據(jù)庫示例的表空間
  6. TEMP
    1. 臨時表空間主要用途是在數(shù)據(jù)庫進(jìn)行排序運算,管理索引,訪問視圖等操縱時提供的臨時的運算空間,當(dāng)運算完成之后系統(tǒng)會自動清理。

表空間查詢命令

查詢所有的表空間

select * from V$tablespace

查看表空間的數(shù)據(jù)文件

select file_name,tablespace_name from dba_data_files

查看用戶的默認(rèn)表空間

select default_tablespace,temporary_tablespace from dba_users where username='用戶名';

查看指定表空間有哪些表

select table_name,tablespace_name from dba_tables where tablespace_name='表空間名稱'

創(chuàng)建表空間

create tablespace test_data datafile 'test_data.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local

創(chuàng)建臨時表空間

create temporary tablespcae test_temp tempfile 'test_temp.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local

刪除表空間

drop tablespace 表空間名 including contents and datafiles

給用戶賦予表空間

create user 用戶名 identified by 密碼 default tablespace 默認(rèn)表空間 temporary  tablespace 臨時表空間

用戶與表空間的關(guān)系

一個用戶可以使用一個或者多個表空間,一個表空間也可以供多個用戶使用。

用戶和表空間沒有隸屬關(guān)系,表空間是一個用來管理存儲數(shù)據(jù)的邏輯概念,表空間只是和數(shù)據(jù)文件發(fā)生關(guān)系,數(shù)據(jù)文件是物理的,一個表空間可以包含多個數(shù)據(jù)文件,而一個數(shù)據(jù)文件只能隸屬一個表空間。

查看用戶默認(rèn)表空間

select username,deafult_tablespace from dba_users where username='用戶名'

查看當(dāng)前用戶擁有的表

select table_name from user_tables

權(quán)限分類

1、系統(tǒng)權(quán)限

系統(tǒng)規(guī)定用戶使用數(shù)據(jù)庫的權(quán)限。(系統(tǒng)權(quán)限是對用戶而言)。系統(tǒng)權(quán)限只能由DBA用戶授出

最開始就是這兩個用戶(sys,system)

2、對象權(quán)限

某種權(quán)限用戶對其他用戶的表或者視圖存取權(quán)限。(是針對表或視圖而言)

系統(tǒng)權(quán)限

允許用戶執(zhí)行特定的數(shù)據(jù)庫動作,如創(chuàng)建表、創(chuàng)建索引、連接實例等。

  1. dba角色: 擁有全部特權(quán),是系統(tǒng)最高權(quán)限。
  2. resource角色:擁有resource權(quán)限的用戶只可以訪問數(shù)據(jù)庫對象。
  3. connect角色:擁有connect權(quán)限的用戶只可以登錄Oracle,不可以訪問數(shù)據(jù)庫對象

注意:以上都是角色,不算單個權(quán)限,算是一群權(quán)限的集合。

查看所有系統(tǒng)權(quán)限

SELECT * FROM SYSTEM_PRIVILEGE_MAP

系統(tǒng)權(quán)限

允許用戶操縱一些特定的對象,如讀取視圖,可更新某些列、執(zhí)行存儲過程等

select, update, insert, alter, index, delete, all …… //all包括所有權(quán)限

execute //執(zhí)行存儲過程權(quán)限

給用戶授權(quán)

系統(tǒng)權(quán)限

grant 系統(tǒng)權(quán)限 to 用戶名 [WITH ADMIN OPTION]
grant connect, resource to 用戶名;


對象權(quán)限

grant 對象權(quán)限 on 對象 to 用戶  [WITH GRANT OPTION]
grant select, update, insert on product to 用戶名;
grant all on product to 用戶名;  // all 表示全部對象權(quán)限
grant all on product to 用戶名;  // public表示是所有的用戶

撤銷用戶權(quán)限

撤銷系統(tǒng)權(quán)限

revoke 系統(tǒng)權(quán)限 from 用戶;
revoke resource from 用戶名;

撤銷對象權(quán)限

revoke 對象權(quán)限 on 對象 from 用戶
revoke select, update on product from 用戶

角色

角色就是一組權(quán)限(privilege),更加方便對權(quán)限進(jìn)行管理,每種角色都用于執(zhí)行一些特定的管理任務(wù)。

  • 創(chuàng)建角色/刪除角色
create role 角色名 / drop role 角色名
  • 給角色授權(quán)

系統(tǒng)權(quán)限: grant 系統(tǒng)權(quán)限 to 角色

對象權(quán)限: grant 對象權(quán)限 on 對象 to 角色

  • 撤消角色權(quán)限

revoke 系統(tǒng)權(quán)限 from 角色

revoke 對象權(quán)限 on 對象 from 角色

查看權(quán)限

查看當(dāng)前用戶所有系統(tǒng)權(quán)限

select * from user_sys_privs

查看當(dāng)前用戶所屬角色

select * from user_role_privs

角色有哪些系統(tǒng)權(quán)限

select * from role_sys_privs

角色有哪些對象權(quán)限(sys用戶下)

select * from role_tab_privs

用戶有哪些對象權(quán)限

select * from user_tab_privs

總結(jié)

到此這篇關(guān)于Oracle表空間與權(quán)限的文章就介紹到這了,更多相關(guān)Oracle表空間與權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論