oracle-用戶管理與權限分配


模式或方案s實際上是用戶所擁有的數據庫對象的集合

 

創建於管理用戶

  身份驗證

提供了3種身份驗證方法

1.密碼驗證

由於用戶信息和密碼都存儲在數據庫內部,所以使用密碼驗證用戶也稱為數據庫驗證用戶

 

2.外部驗證

  外部驗證是指當用戶視圖鏈接到數據庫時,數據庫會核實用戶名是否為一個有效的數據庫賬號,並且確認該用戶已經完成了操作系統級別的身份驗證

外部驗證用並不在數據庫中存儲一個驗證密碼                                                                                                                                     

 

3.全局驗證

  全局驗證是指用戶不在數據庫中存儲驗證碼,而是通過一種高級安全選項所提供的身份驗證服務來進行的

 

一般,比較常用的方式是密碼驗證方式

 

創建用戶

--identified exeternally

  表示用戶在操作系統下驗證,在這種情況下,要求該用戶必須與操作系統中所定義的用戶名相同  

--identified globally as 'CN=user'

  表示用戶名由Oracle安全域中心服務器驗證,CN名字表示用戶的外部名

--quota[integer k[M]][unlimited]] on tablespace_specify

  表示用戶在制定表空間中允許占用的最大空間

--profiles profile_name

  資源文件的名字

--account lock or account unlock:用戶是否被加鎖,默認情況下不加鎖

 

如:創建一個用戶,mr,口令mrsoft,並設置默認的表空間為users,臨時表空間為temp的用戶

create user mr identified by mrsoft

dafault tablespace users

temporary tablespace temp;

 

如:創建一個用戶east,口令mrsoft,默認表空間是users,臨時表空間是temp的用戶,並制定該用戶在tbsp_1表空間上最多可使用的大小為10MB:

create user east identified by mrsoft
default tablespace users
temporary tablespace temp
quota 10m on tbsp_1
/

如果禁止用戶使用某個表空間,則可以通過quota關鍵字設置該表空間的使用限額為0

如:創建用戶df,口令mrsoft,臨時表空間temp,默認表空間tbsp_1,並且該用戶使用tbsp_1表空間不受限制

create user df identified by mrsoft
default tablespace tbsp_1
temporary tablespace temp
quota unlimited on tbsp_1
/

 

注意:

1.如果沒有為用戶不指定default tablespace子句,Oracle會將system表空間作為用戶默認表空間

2.如果沒有指定temporary tablespace ,Oracle會將數據庫默認臨時表空間作為用戶的臨時表空間

3.如果建立的用戶沒有為表空間指定quota子句,那么用戶在特定表空間上的配額為0,用戶將不能再相應的表空間上建立數據對象

 

修改用戶:alter...

1.修改用戶的磁盤配額

alter user east quota 20m on tbsp_1;

2修改用戶的口令

alter user east identified by 123456;

3.解鎖被鎖住的用戶

alter user SH account unlock;

 

刪除用戶

drop user df cascade

cascade:級聯刪除,如果用戶包含數據庫對象,則必須加cascade,此時連同該用戶所擁有的對象一起刪除

 

用戶權限管理

  在創建了用戶之后,只是在Oracle中進行了注冊,這樣的用戶不能連接到數據庫,必須讓具有DBA角色的用戶對該用戶進行授權

權限分類:

  系統權限--系統級對數據庫進行存取和使用的機制,SESSSION,DDL(CREATE,ALTER,DROP)...

  對象權限--某一用戶對其他對象用戶的表、視圖、序列、存儲過程、函數、包等的操作權限。不同類型的對象具有不同的對象權限,對於某些模式對象,比如簇、索引、觸發器、數據庫連接等沒有相應的實體權限,這些權限由系統權限進行管理。

 

授權操作

  system_privilege_map數據目錄視圖

--with admin option

  表示被授權者可以再將權限授予另外的用戶

如:為用戶east 授予連接和開發系統權限,並嘗試使用east連接數據庫:

grant connect,resource to east;

 

如:在創建用戶dongfang和xifang后,首相system將創建session和table的權限授給dongfang,然后dongfang再將這兩個權限傳遞給xifang,最后通過xifang用戶創建一個數據表

create user dongfang identified by mrsoft default tablespace users quota 10m on users;

create user xifang identified by mrsoft default tablespace users quota 10m on users;

grant create session,create table to dongfang with admin option;

connect dongfang/mrsoft

grant create session,create table to xifang

connect xifang/mrsoft

create table tb_xifang

(

id number,

name varchar2(20)

);

 

回收系統權限

 

使用revoke命令可以撤銷用戶不必要的系統權限

如:revoke resource from east

  如果DBA用grant命令給用戶A授予系統權限帶有with admin option,則該用戶A有權將系統權限再次授予另外的用戶B。在這種情況,如果DBA使用revoke命令撤銷用戶A的系統權限,則用戶B的系統權限仍然有效

 

對象授權

如:給用戶xifang授予select ,insert,delete 和update表soctt.emp的權限

grant select,insert,delete,update on scott.emp to xifang

 

回收對象權限

 

如:revoke delete,update on scott.emp from xifang;

  和授權系統權限不同,如果是wiht admin option授權的用戶,會級聯回收其他用戶

 

查詢用戶與權限

數據字典名稱 說明
dba_users 數據庫用戶基本信息表
dba_sys_privs 已授予用戶或角色的系統權限
dba_tab_privs 數據庫對象上的所有權限
user_sys_privs 登錄用戶可以查看自己的系統權限
role_sys_privs 登錄用戶查看自己的角色
all_tables 用戶可以查看自己的角色
user_tab_privs 用戶自己將哪些基表權限授予哪些用戶
all_tab_privs 哪些用戶給自己授權

 

角色管理

 

  角色是一個獨立的數據庫實體,它包括一組權限。也就是說,角色是包括一個或多個權限的集合,它並不被哪個用戶所擁有。角色可以被授予任何用戶,與可以從用戶中將角色收回

預定義角色

  在數據庫系統完成后,由系統自動創建的。

connect

resource

dba

exp_full_database--操作數據庫的導出工具

imp_full_database--操作數據庫的導入工具

一般數據庫管理員分別授予connect,resource,dba

數據庫開發人員:connect resource

 

創建角色與授權

--identified by exeternally:表示角色名在操作系統下驗證

--identified by globally:表示用戶是Oracle安全域中心服務器來驗證,此角色由全局用戶來使用

如:創建一個名為designer角色,該角色的口令為123456:

create role designer identified by 123456;

grant create view,create table to designer

把角色授給某個用戶

grant designer to dongfang;

 

管理角色

1.查看角色所包含的權限

  role_sys_privs

如:select * from role_sys_privs where role='DESIGNER';

2.修改角色密碼

--取消密碼:alter role designer not identified;

--修改角色密碼:alter role designer identified by mrsoft;

 

3.設置當前用戶要生效的角色

如:set role  designer (identified by mrsoft)

 

4.刪除角色

如:drop role queryer

 

角色與權限的查詢

DD--dba_col_privs

  數據庫列上的所有權限

DD--session_roles

  當前用戶所有有效權限

 

 

 

                                                                

 

          

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM