Oracle中用戶、權限、角色的創建


1、 創建用戶、修改密碼、刪除用戶

在 oracle 中要創建一個新的用戶使用 create user 語句,一般是具有 dba(數據庫管理員sysdba)的權限才能使用。

問題:創建好的用戶無法正常登錄?
oracle 中用戶建立后是無法正常登錄的,只有在數據庫管理員(DBA)對用戶分配相應的權限后,用戶才可以登錄。

1)創建用戶

語法結構:create user 用戶名 identified by 密碼 【default tablespace 表空間名】【temporary tablespace temp】

建議創建用戶的時候指定表空間。

2)表空間

創建表空間

create tablespace temp datafile 'E:\oracle_tablespace\englishapp\temp.dbf' size 150M autoextend on next 5M maxsize 3000M;--自動增長

 

/*重新給用戶PRDFPSRV指定默認表空間,必須是dba(數據庫管理員sysdba)用戶登錄操作*/

alter user 用戶 default tablespace 表空間;

 

//登錄用戶后,查看表當前所屬表空間

select table_name,tablespace_name from user_tables;

//登錄用戶后,批量修改當前登錄用戶下的表存放的表空間,將以下查詢出的語句復制出來再執行

SELECT 'alter table '||TABLE_NAME||' move tablespace 正確的空間名;' FROM USER_TABLES WHERE TABLESPACE_NAME = '錯誤的表空間名'

//對用戶寫的表插入數據顯示ORA-01950對表空間XXX無權限;解決方案2種,如下:

解決方案1,登錄dba(數據庫管理員sysdba)用戶,執行:

alter user 用戶名 quota unlimited on 表空間;

 解決方案2,登錄表空間對應的本身用戶,執行:

grant unlimited tablespace to 用戶名;

 

//刪除表空間與表空間文件(注意:如果在創建表空間的時候帶有雙引號,則刪除的時候也要帶上)

DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;

前提:刪除表空間之前要確認該表空間沒有被其他用戶使用之后再做刪除

drop tablespace temp including contents and datafiles cascade onstraints;

//including contents 刪除表空間中的內容,如果刪除表空間之前表空間中有內容,而未加此參數,表空間刪不掉,所以習慣性的加此參數

//including datafiles 刪除表空間中的數據文件

//cascade constraints 同時刪除tablespace中表的外鍵參照

 

3) 給用戶修改密碼

概述:一般以 dba 的身份(管理員用戶sysdba),如果用其它用戶去刪除用戶則需要具有 alter user權限。

語法結構:alter user 用戶名 identified by 密碼

  4)刪除用戶

概述:一般以 dba 的身份去刪除某個用戶,如果用其它用戶去刪除用戶則需要具有 drop user 的權限。

注意:在刪除用戶時, 如果要刪除的用戶,已經創建了表, 那么就需要在刪除的時候帶一個參數 cascade; Cascade 有級聯的作用

語法結構:drop user 用戶名 [cascade]

  2、 給用戶分配權限、角色

概述:創建的新用戶是沒有任何權限的,甚至連登錄的數據庫的權限都沒有,需要為其指定相應的權限。給一個用戶賦權限使用使令 grant,回收權限使用命令 revoke。

可參考這篇:Oracle權限管理詳解

賦權限語法結構:grant 權限/角色 to 用戶名;

回收權限語法結構:revoke 權限/角色 from 用戶名;

1)權限指執行特定類型SQL命令或訪問其他對象的權利(系統權限、對象權限)

系統權限:允許用戶執行某些數據庫管理相關的權限

create session(登錄權限)
create table(創建表權限)
create index(創建索引權限)
create view(創建視圖權限)
create sequence(創建序列權限)
create trriger(創建觸發器權限)

 

對象權限:允許用戶對某一特定對象執行特定的操作,比如對表的增刪改查(insert 增、delete 刪、update 改、select 查);

--使用其他用戶的sequence
1、
賦予權限:GRANT SELECT ON SEQ_NAME TO 數據庫其他用戶; 2、 撤銷權限:REVOKE SELECT ON SEQ_NAME FROM XXX;
--使用其他用戶的表
grant select, insert, update, delete, references, alter, index, debug, read on 表名 to 數據庫其他用戶;

 

  2)角色是具有名稱的一組權限的組合,分為:預定義角色和自定義角色。

自定義角色:按需要定制一定權限形成角色,可以作為預定義角色的補充。來滿足用戶的需求。

預定義角色:把常用的權限集中起來,形成角色。常見的角色有:dba、connect、resource等;一般情況下普通用戶有connect和resource的角色就夠了。

CONNECT角色:臨時用戶,是授予用戶的最基本的權利,能夠連接到 oralce 數據庫中,在對其他用戶的表有訪問權限時,做 SELECT、UPDATE、INSERTT 等操作。

Create session --建立會話;

Alter session --修改會話;

Create view --建立視圖。

Create sequence --建立序列等權限

RESOURCE角色:更為可靠和正式的用戶;具有創建表、序列、視圖等權限。

Create table --建表;

Create trigger --建立促發器;

Create procedure --建立過程;

Create sequence --立序列;

Create type --建立類型等權限;

DBA角色:數據庫管理員角色,擁有管理數據庫的最高權限

 


免責聲明!

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



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