Oracle新建用戶、角色,受權,建表空間

oracle數據庫的權限系統分爲系統權限與對象權限。系統權限( database system privilege )可讓用戶執行特定的命令集。例如,create table權限容許用戶建立表,grant any privilege 權限容許用戶授予任何系統權限。對象權限( database object privilege )可讓用戶可以對各個對象進行某些操做。例如delete權限容許用戶刪除表或視圖的行,select權限容許用戶經過select從表、視圖、序列(sequences)或快照(snapshots)中查詢信息。 數據庫

 

  每一個oracle用戶都有一個名字和口令,並擁有一些由其建立的表、視圖和其餘資源。oracle角色(role)就是一組權限(privilege)(或者是每一個用戶根據其狀態和條件所需的訪問類型)。用戶能夠給角色授予或賦予指定的權限,而後將角色賦給相應的用戶。一個用戶也能夠直接給其餘用戶受權。 session

 

  1、建立用戶 oracle

 

  oracle內部有兩個建好的用戶:system和sys。用戶可直接登陸到system用戶以建立其餘用戶,由於system具備建立別 的用戶的 權限。 在安裝oracle時,用戶或系統管理員首先能夠爲本身創建一個用戶。例 如 : ide

 

Sql代碼  spa

create user user01 identified by u01;   orm

    該命令還能夠用來設置其餘權限,詳細狀況參見自學資料。要改變一個口令,可使用alter user命令: 對象

 

 <span style="white-space: pre;"> alter user user01 identified by usr01;</span> 索引

<span style="white-space: pre;"><span style="white-space: normal;"> </span> </span> 資源

  如今user01的口令已由「u01」改成「usr01」。 get

 

  除了alter user命令之外,用戶還可使用password命令。若是使用password命令,用戶輸入的新口令將不在屏幕上顯示。有dba特權的用戶能夠經過password命令改變任何其餘用戶的口令;其餘用戶只能改變本身的口令。

 

  當用戶輸入password命令時,系統將提示用戶輸入舊口令和新口令,以下所示:

 

  password

 

  changing password for user01

 

  old password:

 

  new password:

 

  retype new password:

 

  當成功地修改了口令時,用戶會獲得以下的反饋:

 

  password changed

 

  二 、刪除用戶

 

  刪除用戶,可使用drop user命令,以下所示:

 

  drop user user01;

 

  若是用戶擁有對象,則不能直接刪除,不然將返回一個錯誤值。指定關鍵字cascade,可刪除用戶全部的對象,而後再刪除用戶。下面的例子用來刪除用戶與其對象:

 

  drop user user01 cascade;

 

  三 、3種標準角色

 

  qracle爲了兼容之前的版本,提供了三種標準的角色(role):connect、resource和dba。

 

  1. connect role(鏈接角色)

 

  臨時用戶,特別是那些不須要建表的用戶,一般只賦予他們connectrole。connect是使用oracle的簡單權限,這種權限只有在對其餘用戶的表有訪問權時,包括select、insert、update和delete等,纔會變得有意義。擁有connect role的用戶還可以建立表、視圖、序列(sequence)、簇(cluster)、同義詞(synonym )、會話(session)和與其餘數據庫的鏈(link)。

 

  2. resource role(資源角色)

 

  更可靠和正式的數據庫用戶能夠授予resource role。resource提供給用戶另外的權限以建立他們本身的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。

 

  3. dba role(數據庫管理員角色)

 

  dba role擁有全部的系統權限----包括無限制的空間限額和給其餘用戶授予各類權限的能力。system由dba用戶擁有。下面介紹一些dba常用的典型權限。

 

  (1)grant(受權)命令

 

  下面對剛纔建立的用戶user01受權,命令以下:

 

  grant connect, resource to user01;

 

  (2)revoke(撤消)權限

 

  已授予的權限能夠撤消。例如撤消(1)中的受權,命令以下:

 

  revoke connect, resource from user01;

 

  一個具備dba角色的用戶能夠撤消任何別的用戶甚至別的dba的connect、resource 和dba的其餘權限。固然,這樣是很危險的,所以,除非真正須要,dba權限不該隨便授予那些不是很重要的通常用戶。 撤消一個用戶的全部權限,並不意味着從oracle中刪除了這個用戶, 也不會破壞用戶建立的任何表;只是簡單禁止其對這些表的訪問。其餘要訪問這些表的用戶能夠象之前那樣地訪問這些表。

 

  4、建立角色

 

  除了前面講到的三種系統角色----connect、resource和dba,用戶還能夠在oracle建立本身的role。用戶建立的role能夠由表或系統權限或二者的組合構成。爲了建立role,用戶必須具備create role系統權限。下面給出一個create role命令的實例:

 

  create role student;

 

  這條命令建立了一個名爲student的role。

 

  一旦建立了一個role,用戶就能夠給他受權。給role受權的grant命令的語法與對對用戶的語法相同。在給role受權時,在grant命令的to子句中要使用role的名稱,以下所示:

 

  grant select on class to student;

 

  如今,擁有student 角色的全部用戶都具備對class 表的select權限。

 

  5、刪除角色

 

  要刪除角色,可使用drop role命令,以下所示:

 

  drop role student;

 

  指定的role連同與之相關的權限將從數據庫中所有刪除。

 

    6、<span style="font-family: helvetica, tahoma, arial, sans-serif; font-size: 14px; line-height: 25px;">刪除表的注意事項</span>

<span style="font-family: helvetica, tahoma, arial, sans-serif; font-size: 14px; line-height: 25px;">在刪除一個表中的所有數據時,須使用</span>

 

Sql代碼 

truncate table 表名  

由於用drop table,delete * from 表名時,tablespace表空間該表的佔用空間並未釋放,反覆幾回drop,delete操做後,該tablespace上百兆的空間就被耗光了。  

相關文章
相關標籤/搜索