一、創(chuàng)建用戶
二、用戶授權(quán)
三、角色機(jī)制
四、配置模版及資源限制
附錄
數(shù)據(jù)庫安全的作用是控制用戶是否能夠?qū)?shù)據(jù)庫及其中的對象執(zhí)行操作。要連接到 Oracle 數(shù)據(jù)庫,就需要?jiǎng)?chuàng)建一個(gè)用戶帳戶,該用戶可以根據(jù)需要授予不同的操作權(quán)限。
一、創(chuàng)建用戶 CREATE/ALTER/DROP USER xxxx [
幫助文檔]
CREATE USER prod4
IDENTIFIED BY ssss
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
刪除一個(gè)用戶時(shí),會(huì)刪除該用戶所擁有的模式對象。DROP USER prod4 CASCADE;
二、用戶授權(quán) GRANT/REVOKE [
幫助文檔]
權(quán)限(privilege)即執(zhí)行特定類型 SQL 語句的權(quán)利,若無任何權(quán)限,新創(chuàng)建用戶將無法登陸 Oracle 數(shù)據(jù)庫。
1、系統(tǒng)權(quán)限
系統(tǒng)權(quán)限(system privilege)允許用戶執(zhí)行某些數(shù)據(jù)庫操作。
GRANT CONNECT,RESOURCE,DBA TO prod4
[WITH ADMIN OPTION];
CONNECT,RESOURCE,DBA 三個(gè)預(yù)定義的角色封裝了大部分系統(tǒng)權(quán)限;
WITH ADMIN OPTION 選項(xiàng)使 被授權(quán)的用戶 也可以把該權(quán)限賦予其他用戶。(級(jí)聯(lián)授權(quán),A->B、B->C)
ps.更多的系統(tǒng)權(quán)限,請參考幫助文檔 GRANT - Table 18-1 System Privileges。
2、模式對象權(quán)限
模式對象權(quán)限(schema object privilege)允許用戶對某一特定對象執(zhí)行特定操作。要授予對象權(quán)限,用戶必須滿足以下條件之一:
● 用戶擁有指定對象;
● 或者用戶已經(jīng)擁有 GRANT OPTION (級(jí)聯(lián)授權(quán))的能力。
sys:
GRANT SELECT ON sys.test TO prod
[WITH GRANT OPTION];
prod:
SELECT * FROM sys.test;
ps.更多的模式對象權(quán)限,請參考幫助文檔 GRANT - Table 18-3 Object Privileges Available for Particular Objects。
三、角色機(jī)制 CREATE/ALTER/DROP ROLE xxx [
幫助文檔]
角色(role)類似于操作系統(tǒng)中的用戶組,它封裝了多個(gè)權(quán)限。用戶可以通過角色繼承權(quán)限,從而簡化權(quán)限的管理與控制。推薦使用基于角色授權(quán),通過角色控制用戶。
角色的使用注意:
● 角色不屬于任何模式(schema)。因此,創(chuàng)建角色的用戶可以被移除而不會(huì)對角色有所影響。
● 角色可以被授予其他角色。但是角色不能授予其自身,角色間也不能形成閉環(huán)。例如,當(dāng)角色 B 已經(jīng)被授予角色 A 時(shí),角色 A 就不能再授予角色 B。
-- 創(chuàng)建角色 myrole 并賦予權(quán)限,然后將該角色賦予用戶 prod(繼承該角色) --
CREATE ROLE myrole;
GRANT SELECT ON sys.test TO myrole;
GRANT SELECT ON sys.test4 TO myrole;
GRANT myrole TO prod;
四、配置模版及資源限制 CREATE/ALTER/DROP PROFILE xxx
每個(gè)用戶都對應(yīng)一套配置模版(profile),其中描述了用戶使用多種系統(tǒng)資源時(shí)的限制,具體包括:
● 用戶能夠建立的并發(fā)會(huì)話(concurrent session)數(shù)
● 用戶會(huì)話及 SQL 語句對 Oracle 進(jìn)行一次調(diào)用時(shí)可用的 CPU 處理時(shí)間
● 用戶會(huì)話及 SQL 語句對 Oracle 進(jìn)行一次調(diào)用時(shí)可用的邏輯 I/O(logical I/O)量
● 用戶會(huì)話的最大空閑時(shí)間(idle time)
● 用戶會(huì)話的最大連接時(shí)間(connect time)
● 密碼限制規(guī)則:
多次嘗試登錄均失敗時(shí)對帳戶加鎖
密碼過期時(shí)間(expiration period)及寬限期(grace period)
密碼重用(reuse)及復(fù)雜度(complexity)限制規(guī)則
附錄
1、模式(schema):模式是指用戶與其擁有對象的邏輯集合。
2、[轉(zhuǎn)]
Oracle 查看用戶權(quán)限
ORACLE中數(shù)據(jù)字典視圖分為3大類,用前綴區(qū)別,分別為:USER,ALL 和 DBA,許多數(shù)據(jù)字典視圖包含相似的信息。
● USER_*:有關(guān)用戶所擁有的對象信息,即用戶自己創(chuàng)建的對象信息
● ALL_*:有關(guān)用戶可以訪問的對象的信息,即用戶自己創(chuàng)建的對象的信息加上其他用戶創(chuàng)建的對象但該用戶有權(quán)訪問的信息
● DBA_*:有關(guān)整個(gè)數(shù)據(jù)庫中對象的信息
(這里的*可以為TABLES, INDEXES, OBJECTS, USERS等)
1.查看所有用戶:
select * from dba_user;
select * from all_users;
select * from user_users;
2.查看用戶系統(tǒng)權(quán)限:
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3.查看用戶對象權(quán)限:
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4.查看所有角色:
select * from dba_roles;
5.查看用戶所擁有的角色:
select * from dba_role_privs;
select * from user_role_privs;
6.查看當(dāng)前用戶的缺省表空間
select username,default_tablespace from user_users;
7.查看某個(gè)角色的具體權(quán)限,如grant connect,resource,create session,create view to TEST;
查看RESOURCE具有那些權(quán)限,用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
3、[轉(zhuǎn)]
對象權(quán)限
模式對象/權(quán)限 |
ALTER |
DELETE |
EXECUTE |
INDEX |
INSERT |
READ |
REFERENCE |
SELECT |
UPDATE |
Directory |
|
|
|
|
|
√ |
|
|
|
function |
|
|
√ |
|
|
|
|
|
|
procedure |
|
|
√ |
|
|
|
|
|
|
package |
|
|
√ |
|
|
|
|
|
|
DB Object |
|
|
√ |
|
|
|
|
|
|
Libary |
|
|
√ |
|
|
|
|
|
|
Operation |
|
|
√ |
|
|
|
|
|
|
Sequence |
√ |
|
|
|
|
|
|
|
|
Table |
√ |
√ |
|
√ |
√ |
|
√ |
√ |
√ |
Type |
|
|
√ |
|
|
|
|
|
|
View |
|
√ |
|
|
√ |
|
|
√ |
√ |
對象由不止一個(gè)權(quán)限,特殊權(quán)限ALL可以被授予或撤銷。如TABLE的ALL權(quán)限就包括:
SELECT,INSERT,UPDATE和DELETE,還有INDEX,ALTER,和REFERENCE。
4、[轉(zhuǎn)]
Oracle 9i預(yù)定義的角色
角色名稱 |
說明 |
CONNECT
|
數(shù)據(jù)庫連接角色,用于連接數(shù)據(jù)庫,具有創(chuàng)建簇、數(shù)據(jù)庫鏈接、序列、同義詞、表和視圖,以及修改會(huì)話的權(quán)利
|
DBA
|
數(shù)據(jù)庫管理員角色,具有所有使用ADMIN選項(xiàng)創(chuàng)建的系統(tǒng)權(quán)限,可以將系統(tǒng)權(quán)限授予其他用戶或角色
|
DELETE_CATALOG_ROLE
|
刪除目錄角色,可以刪除或重建數(shù)據(jù)字典
|
EXECUTE_CATALOG_ROLE
|
執(zhí)行目錄角色,能夠執(zhí)行所有系統(tǒng)包
|
EXP_FULL_DATABASE
|
能夠使用導(dǎo)出程序執(zhí)行數(shù)據(jù)庫的完全和增量導(dǎo)出
|
IMP_FULL_DATABASE
|
能夠使用導(dǎo)入程序執(zhí)行數(shù)據(jù)庫的完全導(dǎo)入
|
RESOURCE
|
可以創(chuàng)建簇、表、序列以及PL/SQL編程用方案對象,包括過程、程序包、觸發(fā)器等
|
SELECT_CATALOG_ROLE
|
查詢數(shù)據(jù)字典表或視圖
|
參考文章:
Oracle Concepts 中文版 (10g R2) -- 第 20 章,數(shù)據(jù)庫安全
posted on 2008-10-13 20:03
黃小二 閱讀(2234)
評(píng)論(0) 編輯 收藏 所屬分類:
[DB].Oracle