oracle數據庫之用戶管理


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

二、用戶與角色權限:

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

三、創建用戶:

  oracle內部有兩個建好的用戶:system和sys。用戶可直接登錄到system用戶以創建其他用戶,因為system具有創建別 的用戶的 權限。 在安裝oracle時,用戶或系統管理員首先可以為自己建立一個用戶。
語法[創建用戶]: create user 用戶名 identified by 口令[即密碼];
例子: create user test identified by test;
語法[更改用戶]: alter user 用戶名 identified by 口令[改變的口令];
例子: alter user test identified by 123456;

四、刪除用戶:

語法:drop user 用戶名;
例子:drop user test;

若用戶擁有對象,則不能直接刪除,否則將返回一個錯誤值。指定關鍵字cascade,可刪除用戶所有的對象,然后再刪除用戶。

語法: drop user 用戶名 cascade;
例子: drop user test cascade;

五、授權角色:

oracle為兼容以前版本,提供三種標准角色(role):connect、resource和dba。

1.講解三種標准角色:

  • connect role(連接角色):臨時用戶,特指不需要建表的用戶,通常只賦予他們connect role。connect是使用oracle簡單權限,這種權限只對其他用戶的表有訪問權限,包括select/insert/update和delete等,還能夠創建表、視圖、序列(sequence)、簇(cluster)、同義詞(synonym)、回話(session)和其他  數據的鏈(link)。
  • resource role(資源角色):更可靠和正式的數據庫用戶可以授予resource role。resource提供給用戶另外的權限以創建他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。
  • dba role(數據庫管理員角色):擁有所有的系統權限。包括無限制的空間限額和給其他用戶授予各種權限的能力。system由dba用戶擁有

2.授權命令:

語法: grant connect, resource to 用戶名;
例子: grant connect, resource to test;

3.撤銷權限:

語法: revoke connect, resource from 用戶名;
例子: revoke connect, resource from test;

六、創建/授權/刪除角色:

  除了前面講到的三種系統角色----connect、resource和dba,用戶還可以在oracle創建自己的role。用戶創建的role可以由表或系統權限或兩者的組合構成。為了創建role,用戶必須具有create role系統權限。

1.創建角色:

語法: create role 角色名;
例子: create role testRole;

2.授權角色:

語法: grant select on class to 角色名;
例子: grant select on class to testRole;

注:現在,擁有testRole角色的所有用戶都具有對class表的select查詢權限

3.刪除角色

語法: drop role 角色名;
例子: drop role testRole;

注:與testRole角色相關的權限將從數據庫全部刪除

七、使用例子,使用dump導入數據:

步驟如下:

1.創建臨時表空間:

create temporary tablespace TABLESPACE_TEMP tempfile 'D:/TABLESPACE_TEMP.DBF' size 100M reuse autoextend on next 20M maxsize unlimited;

2.創建表空間:

create tablespace TABLESPACE datafile 'D:/TABLESPACE.DBF' size 300M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);

3.創建用戶到表空間上:

create user test identified by test#123# default tablespace TABLESPACE temporary tablespace TABLESPACE_TEMP;

4.為用戶分配權限:

grant connect,resource to test;

5.使用dmp將數據庫導入導出:

1)將數據庫數據導出為dmp文件:

  • 將數據庫orcl用戶名test密碼test#123#的數據導出到e:\test.dmp中:
exp test/test#123# file=e:\test.dmp full=y ignore=y
  • 將數據庫user1與user2用戶的表導出到d:\daochu.dmp中:
exp test/test#123#@orcl file=d:\daochu.dmp owner=(user1,user2)
  • 將數據庫表T_USER、T_ROLE導出到d:\daochu.dmp中:
exp test/test#123#@orcl file=d:\daochu.dmp tables=(T_USER,T_ROLE) 

 2)將dmp文件數據導入到數據庫中:

imp test/test#123# file=E:/test.dmp full=y ignore=y

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com