Oracle權(quán)限分類及其具體內(nèi)容
權(quán)限是用戶對(duì)一項(xiàng)功能的執(zhí)行權(quán)力。在Oracle中,根據(jù)系統(tǒng)管理方式不同,將Oracle權(quán)限分為系統(tǒng)權(quán)限與實(shí)體權(quán)限兩類。系統(tǒng)權(quán)限是指是否被授權(quán)用戶可以連接到數(shù)據(jù)庫(kù)上,在數(shù)據(jù)庫(kù)中可以進(jìn)行哪些系統(tǒng)操作。而實(shí)體權(quán)限是指用戶對(duì)具體的模式實(shí)體(schema)所擁有的權(quán)限。
一、Oracle權(quán)限分類:
系統(tǒng)權(quán)限:系統(tǒng)規(guī)定用戶使用數(shù)據(jù)庫(kù)的權(quán)限。(系統(tǒng)權(quán)限是對(duì)用戶而言)。
實(shí)體權(quán)限:某種權(quán)限用戶對(duì)其它用戶的表或視圖的存取權(quán)限。(是針對(duì)表或視圖而言的)。
二、Oracle權(quán)限管理中的系統(tǒng)權(quán)限管理:
1.系統(tǒng)權(quán)限分類:
DBA: 擁有全部特權(quán),是系統(tǒng)***權(quán)限,只有DBA才可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
RESOURCE:擁有Resource權(quán)限的用戶只可以創(chuàng)建實(shí)體,不可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
CONNECT:擁有Connect權(quán)限的用戶只可以登錄Oracle,不可以創(chuàng)建實(shí)體,不可以創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)。
對(duì)于普通用戶:授予connect, resource權(quán)限。
對(duì)于DBA管理用戶:授予connect,resource, dba權(quán)限。
2.系統(tǒng)權(quán)限授權(quán)命令:
[系統(tǒng)權(quán)限只能由DBA用戶授出:sys, system(最開(kāi)始只能是這兩個(gè)用戶)]
授權(quán)命令:SQL> grant connect, resource, dba to 用戶名1 [,用戶名2]...;
[普通用戶通過(guò)授權(quán)可以具有與system相同的用戶權(quán)限,但永遠(yuǎn)不能達(dá)到與sys用戶相同的權(quán)限,system用戶的權(quán)限也可以被回收。]
例:
SQL> connect system/manager
SQL> Create user user50 identified by user50;
SQL> grant connect, resource to user50;
查詢用戶擁有哪里權(quán)限:
SQL> select * from dba_role_privs;
SQL> select * from dba_sys_privs;
SQL> select * from role_sys_privs;
刪除用戶:SQL> drop user 用戶名 cascade; //加上cascade則將用戶連同其創(chuàng)建的東西全部刪除
4.系統(tǒng)權(quán)限傳遞:
增加WITH ADMIN OPTION選項(xiàng),則得到的權(quán)限可以傳遞。
SQL> grant connect, resorce to user50 with admin option; //可以傳遞所獲權(quán)限。
5.系統(tǒng)權(quán)限回收:系統(tǒng)權(quán)限只能由DBA用戶回收
命令:SQL> Revoke connect, resource from user50;
系統(tǒng)權(quán)限無(wú)級(jí)聯(lián),即A授予B權(quán)限,B授予C權(quán)限,如果A收回B的權(quán)限,C的權(quán)限不受影響;系統(tǒng)權(quán)限可以跨用戶回收,即A可以直接收回C用戶的權(quán)限。
三、Oracle權(quán)限管理中的實(shí)體權(quán)限管理
1.實(shí)體權(quán)限的授命令
語(yǔ)法如下:
GRANT 實(shí)體權(quán)限名|ALL TO 用戶|角色|PUBLIC
其中,ALL表示實(shí)體的所有實(shí)體權(quán)限。
如:SQL>GRANT SELECT ON BOOKS_QUTHORS TO USER1;
2.用來(lái)查詢表的實(shí)體權(quán)限的授權(quán)信息:SQL>SELECT * FROM USER_TAB_PRIVES
3.回收實(shí)體權(quán)限,使用REVOKE,其語(yǔ)法如下:
REVOKE 實(shí)體權(quán)限名|ALL ON 實(shí)體名 FROM 用戶名|角色名|PUBLIC。
【編輯推薦】