Oracle 表空間和用戶許可權管理

来源:http://www.cnblogs.com/LonelyShadow/archive/2017/01/05/6254294.html
-Advertisement-
Play Games

一、 表空間 Oracle資料庫包含邏輯結構和物理結構。 資料庫的物理結構指的是構成資料庫的一組操作系統文件。 資料庫的邏輯結構是指描述數據組織方式的一組邏輯概念以及它們之間的關係。 表空間是資料庫邏輯結構的一個重要組件。 表空間可以存放各種應用對象,如表、索引等。 而每一個表空間由一個或多個數據文 ...


一、 表空間

  Oracle資料庫包含邏輯結構和物理結構。
  資料庫的物理結構指的是構成資料庫的一組操作系統文件。
  資料庫的邏輯結構是指描述數據組織方式的一組邏輯概念以及它們之間的關係。

 

  表空間是資料庫邏輯結構的一個重要組件。
  表空間可以存放各種應用對象,如表、索引等。
  而每一個表空間由一個或多個數據文件組成。

 

  1. 表空間的分類
  表空間可分為3類:

  • 永久性表空間:一般保存表、上天、過程和索引等數據。system、sysaux、users、example表空間是預設安裝的。
  • 臨時性表空間:只用於保存系統中短期活動的數據,如排序數據等。
  • 撤銷表空間:用來幫助回退未提交的事務數據,已提交了的數據在這裡是不可以恢復的。一般不需要創建臨時和撤銷表空間,除非把它們轉移到其它磁碟中以提高性能。

 

  2. 表空間的目的
  (1) 對不同的用戶分配不同的表空間,對不同的模式對象分配不同的表空間,方便對用戶數據的操作、對模式對象的管理。
  (2) 可以將不同數據文件創建到不同的磁碟中,有利於管理磁碟空間、有利於提高I/O性能、有利於備份和回覆數據等。
  (3) 一般在完成Oracle系統的安裝並創建Oracle實例後,Oracle系統會自動建立多個表空間。


  3. 創建表空間
  創建表空間,語法如下:

1 CREATE TABLESPACE tablespaceName
2 DATAFILE 'filename'
3 [SIZE integer [K | M]]
4 [AUTOEXTEND [OFF | ON]];

  在語法中:

  • tablespaceName是需創建的表空間名稱;
  • DATAFILE指定組成表空間的一個或多個數據文件,當有多個數據文件時使用逗號分隔;
  • filename是數據文件的路徑和名稱;
  • SIZE指定文件的大小,用K指定千位元組大小,用M指定兆位元組大小;
  • AUTOEXTEND子句用來啟用或禁用數據文件的自動擴展,設置為ON則空間使用完畢會自動擴展,設置為OFF則很容易出現表空間剩餘容量為0的情況,使數據不能存儲到資料庫中。


  實例:創建一個自動增長的表空間geeksss的SQL語句如下:

1 CREATE TABLESPACE geeksss
2 DATAFILE 'D:\ORACLE\DATA\GEEKSSS.DBF'
3 SIZE 10M 
4 AUTOEXTEND ON;

 

  4. 刪除表空間
  可以通過DROP語句(DROP TABLESPACE 加上表空間的名稱)來刪除用戶自定義的表空間。
  語法:

1 DROP TABLESPACE tablespaceName;

  刪除表空間之前最好對資料庫進行備份。

 

二、 自定義用戶管理

  當創建一個新資料庫時,Oracle將創建一些預設資料庫用戶,如sys、system和scott等。
  sys和system用戶都是Oracle的系統用戶,而scott用戶是Oracle資料庫的一個示範賬戶,裡面包含一些測試樣例表。

 

  下麵簡單介紹一個sys、system和scott用戶的模式。

  1. sys
  sys用戶是Oracle中的一個超級用戶。

 

  資料庫中的所有數據字典和視圖都存儲在sys模式中。
  數據字典存儲了用來管理資料庫對象的所有信息,是Oracle資料庫中非常重要的系統信息。

 

  sys用戶主要用來維護系統信息和管理實例。sys用戶只能以sysoper或sysdba角色登錄系統。

 


  2. system
  system用戶是Oracle中預設的系統管理員,它擁有dba許可權。
  該用戶擁有Oracle管理工具使用的內部表和視圖,通常通過system用戶管理Oracle資料庫的用戶、許可權和存儲等。

 

  不建議system模式中創建用戶表,system用戶不能以sysoper或sysdba角色登錄系統,只能以預設的方式登錄。

 


  3. scott
  scott用戶是Oracle資料庫的一個示範用戶,一般在資料庫安裝時創建。
  scott用戶模式包含4個示範表,其中一個是emp表,使用USERS表空間存儲模式對象。

 

  通常情況下,出於安全考慮,對於不同的數據表需要設置不同的訪問許可權。

  此時,就需要創建不同的用戶。Oracle中的CREATE USER命令用於創建新用戶。

 

  每個用戶都有一個預設表空間和一個臨時表空間。
  如果沒有指定,Oracle就將USERS設為預設表空間,將TEMP設為臨時表空間。

 

  創建用戶語法如下所示:

1 CREATE USER username
2 IDENTIFIED BY password
3 [DEFAULT TABLESPACE tablespaceName]
4 [TEMPORARY TABLESPACE tablespaceName]

  在語法中:

  • username是用戶名,用戶名必須是一個標識符;
  • password是用戶口令,口令必須是一個標識符,且不區分大小寫;
  • DEFAULT或TEMPORARY TABLESPACE為用戶確定預設表空間或臨時表空間。


  實例:一下代碼演示瞭如何創建名稱為martin的用戶:

1 CREATE USER martin
2 IDENTIFIED BY martinpwd
3 DEFAULT TABLESPACE geeksss
4 TEMPORARY TABLESPACE temp;

  上述命令將創建一個名為martin、口令為martinpwd的用戶,預設表空間為geeksss,臨時表空間為temp。

 

 

  實例:將martin的口令修改為mpwd:

1 ALTER USER martin
2 IDENTIFIED BY mpwd;

 

  Oracle的DROP USER命令可用於刪除用戶,但當用戶擁有模式對象時則無法刪除用戶。
  而必須使用CASCADE選項刪除用戶和用戶模式對象。

 

 

  實例:如何刪除用戶martin:

1 DROP USER martin CASCADE;

 

 

三、 資料庫許可權管理

  許可權是用戶對一項功能的執行權利。
  在Oracle中,根據系統管理方式的不同,可將許可權氛圍系統全新啊與對象許可權兩類。

 

 

  1. 系統許可權
  系統許可權是指被授權用戶是否可以連接到資料庫上及在資料庫中可以進行哪些系統操作。
  系統許可權是在資料庫中執行某種系統級別的操作,或者針對某一類的對象執行某種操作的權利。

 

  例如:在資料庫中創建表空間的權利,或者在資料庫中創建表的權利,這些都屬於系統許可權。

 

  常見的系統許可權如下:

  • CREATE SESSION:鏈接到資料庫
  • CREATE TABLE:創建表
  • CREATE VIEW:創建視圖
  • CREATE SEQUENCE:創建序列


  2. 對象許可權
  對象許可權是指用戶對資料庫中具體對象所擁有的許可權。
  對象許可權是針對某個特定的模式對象執行操作的權利。

 

  只能針對模式對象未設置和管理對象許可權,如資料庫的表、視圖、序列、存儲過程、存儲函數等。

 

  Oracle資料庫用戶有兩種途徑獲得許可權:
  (1) 管理員直接向用戶授予許可權。
  (2) 管理員將許可權授予角色,然後再將角色授予給一個或多個用戶。

 

  使用角色能夠更加方便和高效地對許可權進行管理,所以資料庫管理員通常使用角色向用戶授予許可權,而不是直接向用戶授予許可權。

 

  在Oracle資料庫系統中預定義了很多的角色,其中最常用的有CONNECT角色、RESOURCE角色、DBA角色等等。
  一般程式使用的用戶只要授予CONNECT和RESOURCE兩個角色即可。
  DBA角色具有所有的系統許可權,並且可以給其他用戶、角色授權。由於DBA角色許可權比較多,這裡就不列出來了。

 

  Oracle中常用的系統預定義角色如下:

  • CONNECT:需要連接上資料庫的用戶,特別是那些不需要創建表的用戶,通常授予該角色。
  • RESOURCE:更為可靠和正式的資料庫用戶可以授予該角色,可以創建表、觸發器、過程等。
  • DBA:資料庫管理員角色,擁有管理資料庫的最高許可權,一個具有DBA角色的用戶可以撤銷任何別的用戶甚至別的DBA許可權,這是很危險的,所以不要輕易授予該角色。


  (1) 授予許可權語法如下:

1 GRANT 許可權|角色 TO 用戶名;

 

  (2) 撤銷許可權的語法如下:

1 REVOKE 許可權|角色 FROM 用戶名;

 

  實例:如何授予和撤銷martin用戶的CONNECT和RESOURCE兩個角色:

1 GRANT connection,resource to martin; -- 授予CONNECTION和RESOURCE兩個角色
2 REVOKE connection, resource FROM martin; -- 撤銷CONNECTION和RESOURCE兩個角色
3 GRANT SELECT ON SCOTT.emp TO martin; -- 允許用戶查看emp表中的記錄
4 GRANT UPDATE ON SCOTT.emp TO martin; -- 允許用戶更新emp表中的記錄

 

  資料庫用戶安全設計原則:

  • 資料庫用戶許可權授權按照最小分配原則;
  • 資料庫用戶要分為管理、應用、維護、備份四類用戶;
  • 不允許使用sys和system建立資料庫應用對象;
  • 禁止GRANT dba TO user。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 該視頻意在讓所有學員一次通過考試,避免重覆考試而承擔的巨額考試費用! 目前MongDB發展迅猛,有趕超mysql,和oracle看齊的苗頭。在這個時候MongoDB也適時的推出了官方的認證考試“MongoDB Certified DBA Associate Level”。該證書和OCP一樣,值得擁有 ...
  • 在逝去的2016後半年,由於項目需要支持數據的快速更新和多用戶的高併發負載,我試水SQL Server 2016的In-Memory OLTP,創建記憶體資料庫實現項目的負載需求,現在項目接近尾聲,系統運行穩定,寫一篇博客,記錄一下使用記憶體資料庫的經驗。 SQL Server 2016的In-Memo ...
  • 大數據離線部分 1、HDFS 1:HDFS的架構部分及工作原理 NameNode:負責管理元素據,將信息保存在記憶體中 DataNode:保存數據,以塊的形式保存。啟動後需要定時的向NameNode發送心跳,報告自身存儲的塊信息 2:HDFS的上傳過程 3:HDFS的下載 4:NameNode的元數據 ...
  • 在資料庫的遷移和升級場景中,我們經常會遇到一個問題:在做壓力測試時,如何模擬真實的業務壓力,解決這個問題的方法有很多,比如:應用方開發模擬程式或者使用壓力測試工具模擬,如load runner,但是,如果要說哪種方法能最大限度地模擬真實業務壓力,我認為還是Oracle的Database Replay ...
  • 嗯,遇見了表中存在重覆的記錄的問題,直接寫sql刪除時最快的,才不要慢慢的複製到excel表中慢慢的人工找呢。哼。 如下sql,找出重覆的記錄,和重覆記錄中ID值最小的記錄(表中ID為自增長) 然後就可以直接刪除,基本原理就是,找到重覆記錄的每一條記錄,排除掉重覆id最小的記錄,刪除剩餘的重覆記錄。 ...
  • sqlcmd -s DESKTOP-Q3VQ7U1 -U sa -P 123456 -d db_test -r -i G:\test.sql 黑色字體為關鍵命令,其他顏色(從左至右):伺服器名稱,用戶名,密碼,資料庫,文件路徑 通過select @@servername獲取服務名稱:DESKTOP- ...
  • --允許將顯示值插入表的標識列中-ON:允許 OFF:不允許set identity_insert T_shell ONset identity_insert T_Shell OFF ...
  • 一、負責收集數據的工具:Sqoop(關係型數據導入Hadoop)Flume(日誌數據導入Hadoop,支持數據源廣泛)Kafka(支持數據源有限,但吞吐大) 二、負責存儲數據的工具:HBaseMongoDBCassandraAccumulo MySqlOracleDB2 HDFS(Hadoop Di ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...