oracle安全性組件括2大類
oracle的資料庫系統安全。主要包括字系統一級來控制使用者對資料庫中的系統資源的訪問喝使用,如使用者名稱、密碼,使用者可進行的系統操作和分配給使用者的磁碟資源。 oracle資料庫中資料的安全。控制使用者對資料庫中對象的訪問和使用。以及控制使用者對資料庫中對象的操作。 oracle資料庫管理 利用使用者名稱、密碼控制對資料庫的訪問,利用許可權限制使用者對資料庫中系統資源的訪問。利用許可權,視圖來系統管理使用者對資料庫中對象的訪問。
建立使用者 文法: CREATE USER 使用者名稱 IDENTIFIED BY 密碼
只有系統管理員才有許可權建立使用者,而且剛建立的使用者是沒有任何許可權的。甚至連最基本的登入資料庫都無法登入。所以需要分配許可權給使用者。
許可權 許可權是用來執行某些特定的 SQL 陳述式的能力。
許可權又分為 2 大類 系統許可權。訪問(使用)資料庫(系統資源)的許可權 對象許可權。維護資料庫中對象的能力。 模式 一組對象的集合,如,表、視圖、序號等等。模式由資料庫的使用者所擁有,並且與使用者具有相同的名字。在實際使用中模式和使用者是一回事。
常用的系統許可權 CREATE USER:建立使用者 DROP USER:刪除使用者 SELECT ANY TABLE:查詢任何使用者的表和視圖的許可權 CREATE ANY TABLE:在任何模式中建立表 DROP ANY TABLE:刪除任何模式中所建得表 CREATE SESSION:串連資料庫 CREATE TABLE:在使用者自己的模式中建立表 CREATE VIEW:在使用者自己的模式中建立視圖 CREATE SEQUENCE:在使用者自己的模式中建立序號 CREATE PROCEDURE:在使用者自己的模式中建立過程 ANY 關鍵字表示在任何模式中都有定義的許可權
賦予許可權 首先建立一個使用者
CREATE USER cat IDENTIFIED BY miaomiao
然後賦予該使用者 CREATE SESSION (登入) 許可權
grant create session to cat;
賦予 cat 使用者更多的許可權(查詢任何使用者的表,建表,建視圖)
grant select any table, create table, create view tocat;
選擇用 cat 登入 這時因為賦予了 可以查看任何使用者的表許可權,所以我們可以查詢到 SCOTT 使用者下的 emp表
select * from scott.emp;
結果如下:
使用新使用者建立新表
create table baby_cat as select * from scott.emp;
此時會提示
許可權不足導致無法將表格建立在 user 資料表空間當中。所以還需要為 該 cat 使用者指派資料表空間使用許可權以及使用的磁碟大小。 切換 DBA 使用者 sys 或者 system
alter user cat default tablespace users quota 20m on users;
該語句的意思為,當個 cat 使用者建立表時,如果未指定資料表空間,那麼預設建立在 users 空間當中,並且分配磁碟大小為 20M。
查看使用者權限 可以通過資料字典 SESSION_PRIVS 來查看使用者擁有的所有許可權
select * from session_privs;
結果如下
撤銷使用者權限 文法: REVOKE [許可權名1],[許可權名2] FROM 使用者名稱
例如,收回 cat 使用者的4個許可權, SQL 如下。
REVOKE SELECT ANY TABLE, CREATE TABLE, CREATE VIEW, CREATE SESSION FORM cat
角色
假如所管理的資料庫使用者有1000個,每個使用者都需要10種一樣的許可權,這個時候賦權就成了一件麻煩事,每個10種,1000個就要寫1000次一樣的賦權 SQL 。
而為了簡化這方面的工作,oracle 引入了角色這個概念。通過建立一個角色,將所需要的許可權賦予該角色,然後將角色在賦予剩下的全部使用者。這樣一來,省事很多。至於為什麼不直接用系統管理員這樣做,那是因為系統管理員許可權很高,有些許可權不能賦予非系統管理使用者,一旦賦予出去的話會造成混亂。
建立角色,並授權 文法: CREATE ROLE 角色名稱
如下 建立了一個名為 animal 的角色
create role animal;
然後為該角色授權
grant select any table, create table, create view, create session to animal;
接著以該角色登入。登入之後,我們就可以用該角色為其他使用者賦予本身所擁有的許可權了。
grant animal to dog, cat, pig;
上例將 animal 的所有許可權全新賦給了 dog,cat,pig 3個使用者
待更新完。。。。