1.一、權限管理是Oracle的精華,不一樣用戶登陸到同一數據庫中,可能看到不一樣數量的表,擁有不一樣的權限。Oracle 的權限分爲系統權限和數據對象權限,共一百多種。若是把Oracle數據庫看作倉庫,表空間至關於倉庫中的庫房,數據表就是存放在倉庫庫房中的貨品。用戶至關於倉庫管理員,倉庫管理員能夠管理一個或多個倉庫庫房,但倉庫管理員只屬於一個倉庫。(做爲SqlServer用戶,表空間相似SqlServer中的數據庫,sys/system用戶相似SqlServer中的sa用戶)html
1.二、Oracle默認有三個用戶system 、 sys 、 scott。sys和system屬於系統管理員用戶,也是Oracle中權限很高的用戶(sys權限要更高於system),scott是默認普通用戶,scott的默認密碼是tiger。sql
1.三、Oracle關於用戶常見問題;數據庫
1.3.一、sys不能用normal權限登陸,僅能用sysdba和sysoper權限登陸。oracle
1.3.二、system不能用sysoper權限登陸,僅能用normal和sysdba權限登陸。ide
1.3.三、scott用戶默認是鎖定的,須要解鎖才能使用。(scott默認密碼是tiger,解鎖後可自行修改密碼)flex
1.3.四、解鎖scott用戶,登陸sqlplus(normal權限登陸便可)後用 alter user scott account unlock; 語句解鎖(注意最後有分號結尾)spa
激活scott用戶後,首次登陸會提示要求修改密碼,默認密碼 tiger 不能使用scott。3d
2.一、使用 PL/SQL 會發現登陸的時候【鏈接爲】有三個選項:Normal、SYSDBA、SYSOPER。這是用戶選擇以什麼身份對數據庫進行操做,能夠看作一個倉庫管理員以什麼職位對倉庫貨品進行管理。code
2.二、一個用戶能夠有多個身份,就比如在一家公司一我的能夠身兼數職,而登陸數據庫時選擇的 Normal、SYSDBA、SYSOPER 就是選擇以什麼職位對數據庫進行操做。orm
2.三、以前提到,Oracle默認用戶SYS能夠用 SYSDBA和SYSOPER鏈接,用戶SYSTEM能夠用SYSDBA和Normal鏈接,用戶scott僅能用Normal鏈接;身份和角色是多對多的關係,
2.四、三種身份權限,詳見下表
其中SYS用戶擁有最高權限,SYS 是全部內部數據庫表、結構、過程包、等擁有者,此外它還擁有 V$ 和數據字典視圖,並建立全部封裝的數據庫角色(DBA,CONNECT,RESOURCE)。 SYS是一個惟一能訪問特定內部數據字典的用戶。
做爲通常開發人員通常用Normal身份鏈接數據便可。
3.一、建立用戶 create user [username] identified by [password];
3.二、修改用戶密碼 alter user [username] identified by [password];
3.三、修改用戶狀態(解鎖或鎖定),Oracle用戶有兩種狀態 lock(鎖定) 和 unlock(解鎖) alter user [username] account [lock/unlock];
3.四、刪除用戶 drop user [username];
4.一、 權限就是在數據庫中執行一些操做的權利,好比,登陸數據庫,鏈接數據庫,建立數據表等。角色是權限的集合,好比,角色A同時擁有登陸數據庫,建立數據表的權限。舉例,拿狼人殺來理解權限和角色的關係,把狼人殺中的行動拆分爲權限大概有,天黑睜眼[權限]、查驗身份[權限]、使用毒/解藥[權限]、投票[權限]等,這些看作Oracle數據庫中的權限;你們都知道狼人殺中普通村民晚上是要閉眼的,而特殊身份晚上有睜眼[權限],其中女巫[角色]擁有天黑睜眼[權限]和使用毒/解藥[權限]還有投票[權限],那這三個[權限]的集合就是女巫[角色]。
4.1.一、Oracle的權限分爲系統權限和對象權限;系統權限就是用戶對整個數據庫的範圍內的操做權限,好比經常使用的建表,鏈接,建視圖等權限,對象權限就是受權其餘方案對象用戶對本身方案對象的操做權限,好比經常使用增刪改查操做。對象權限的通俗理解,把本身的數據庫方案(本身的數據表)共享給其餘用戶操做使用的權限。
4.二、系統權限介紹、受權、回收
4.2.一、系統權限是指執行特定類型sql命令的權利。它用於控制用戶能夠執行的一個或是一組數據庫操做。經常使用系統權限有:
4.2.二、查看當前Oracle版本的全部系統權限 select * from system_privilege_map order by name; (我目前安裝的Oracle11g有208個系統權限)
4.2.三、給用戶受權角色(或權限) grant [RoleName]|[PowerName] to [UserName];
(給用戶【a_user】受權【創建數據庫鏈接】和【建立數據表】權限)
4.2.四、回收權限 revoke [RoleName]|[PowerName] from [UserName];
4.三、對象權限介紹、受權、回收
4.3.一、對象權限指訪問其它方案對象的權利,用戶能夠直接訪問本身方案的對象,可是若是要訪問別的方案的對象,則必須具備對象的權限。經常使用對象權限:
4.3.二、給用戶受權角色(或權限) grant [PowerName]|[RoleName] on [b_UserName].[TableName] to [a_UserName];
受權用戶 a_user 對 用戶 b_user 下的 t_couse 表 [增、刪、改、查] 權限
4.3.三、回收權限 revoke [PowerName]|[RoleName] on [b_UserName].[TableName] from [a_UserName];
撤銷用戶 a_user 對 用戶 b_user 下的 t_couse 表 [增、刪、改、查] 權限
4.四、角色(權限集合)
4.4.一、在對用戶受權的時候會遇到多個權限須要受權給多個用戶的狀況。一個個權限分別受權給一個個用戶顯然效率很低,這種場景就須要用到角色。前面有說到,角色就會權限的集合。
4.4.二、預約義角色,Oracle已經提供了一些預約義角色,經常使用到的有 connect,resource,dba 三種角色;
4.4.2.一、connect角色:具備通常應用開發人員須要的大部分權限,當創建了一個用戶後,多數狀況下,只要給用戶授予connect和resource角色就夠了;
4.4.2.二、resource角色具備應用開發人員所須要的其它權限,好比創建存儲過程,觸發器等;
4.4.2.三、dba角色具備全部的系統權限,及with admin option選項,默認的dba用戶爲sys和system,它們能夠將任何系統權限授予其餘用戶。可是要注意的是dba角色不具有sysdba和sysoper的特權(啓動和關閉數據庫);
4.4.三、建立角色,除了Oracle提供的預約義角色,咱們也能夠本身建立角色
create role [RoleName] not identified; -- 不驗證方式建立角色(沒有密碼驗證) create role [Role] identified by [password]; -- 驗證方式建立角色(激活角色時須要驗證密碼)
4.4.四、給角色受權,自定義建立的角色默認沒有任何權限,建立角色後須要分配權限 (注意:分配系統權限時建議使用 system用戶)
conn system/[password]; --鏈接system用戶 grant [PowerName] to [RoleName] with admin option; --受權系統權限 conn scott/tiger@myoral; --鏈接對象用戶 grant [PowerName] on scott.emp to [RoleName]; --受權對象權限
4.4.五、刪除角色 drop role [RoleName];
引用資料:http://www.javashuo.com/article/p-qqfswfdn-cm.html
<<============================================================================================================================================>>