1.Oracle使用者
Oracle使用者,既可以登入Oracle資料庫,對資料庫進行增删改查等操作的使用者。主要有四種使用者:
超級管理者,如SYS;
普通管理者,如SYSTEM;
普通使用者,如SCOTT;
大資料使用者;
1.1.建立使用者:
--文法[建立使用者]:
create user 使用者名 identified by 密碼[即密碼];
--例子:
create user test identified by test;
--文法[更改使用者]:
alter user 使用者名 identified by 密碼[改變的密碼];
--例子:
alter user test identified by 123456
1.2.删除使用者
若使用者擁有對象,則不能直接删除,否則将傳回一個錯誤值。此時可使用指定關鍵字cascade,可删除使用者所有的對象,然後再删除使用者。
--文法:
drop user 使用者名;
--例子:
drop user test;
--文法:
drop user 使用者名 cascade;
--例子:
drop user test cascade;
使用者建立後不能直接登入資料庫及對資料庫進行操作,需要賦予使用者一定的權限才可以進行相應的操作。
2.Oracle權限
權限分為兩類:
系統權限: 允許使用者執行特定的資料庫動作,如建立表、建立索引、連接配接執行個體等
對象權限: 允許使用者操縱一些特定的對象,如讀取視圖,可更新某些列、執行存儲過程等
--查詢系統所有的權限:
SELECT * FROM SYSTEM_PRIVILEGE_MAP;
--查詢使用者擁有的系統權限:
SELECT * FROM USER_SYS_PRIVS
資料庫管理者具有進階權限以完成管理任務,如建立新使用者、删除使用者、删除表、備份表等.
建立Oracle使用者後需要進行相應權限的賦予,相應語句為:
--(1)授權指令
--文法:
grant connect, resource to 使用者名;
--例子:
grant connect, resource to test;
--(2)撤銷權限
--文法:
revoke connect, resource from 使用者名;
--列子:
revoke connect, resource from test
3.Oracle角色
由于Oracle提供的權限非常之多,日常操作時我們不可能将所需權限一一賦予使用者,此時引進角色概念。角色是一組相關權限的命名集合,使用角色最主要的目的是簡化權限管理。将一組權限打包到角色中,賦權時可直接将角色賦予使用者,代表将角色下得所有權限都賦予了使用者,簡化了賦權操作;Oracle提供三種标準的三種角色.
1) connect role(連接配接角色)
臨時使用者,特指不需要建表的使用者,通常隻賦予他們connect role. 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使用者擁有
除了前面講到的三種系統角色外,使用者可以在Oracle建立自己的角色
--1)建立角色
--文法:
create role 角色名;
--例子:
create role testRole;
--2)授權角色
--文法:
grant select on class(表名) to 角色名;
--例子:
grant select on class to testRole;
--3)删除角色
--文法:
drop role 角色名;
--例子:
drop role testRole
注:賦權後,擁有testRole角色的所有使用者都具有對class表的select查詢權限;删除後與testRole角色相關的權限将從資料庫全部删除.