第七章 用戶管理
1.創(chuàng)建用戶
CREATE USER 用戶名
IDENTIFIED {BY 用戶名 | EXTERNALLY | GLOBALLY AS '外部名'}
[PASSWORD EXPIRE]
[DEFAULT TABLESPACE 表領域名]
[TEMPORARY TABLESPACE 臨時表名]
[QUOTA {大小 | UNLIMITED} ON 表領域名]
[ACCOUNT {LOCK | UNLOCK}]
[PROFILE profile名]
1)認證方式
密碼認證
EXTERNALLY(OS 認證)
用戶名 OS_AUTHENT_PREFIX初始化參數(shù)指定前綴,比如 OS_AUTHENT_PREFIX=OPS$,創(chuàng)建用戶
create user ops$oracle ideneified EXTERNALLy;
3)GLOBALLY
Oracle Advanced Security可選認證方式,指紋認證,X.509證明書...
如果沒有指定表領域,則使用默認的表領域。
臨時表領域:用于SQL相關的ORDER BY和GROUP BY指定,內部sort用。
數(shù)據(jù)庫表級別定義內容,可以從 DATABASE_PROPERTIES數(shù)據(jù)字典視圖檢索。
PROFILE
數(shù)據(jù)庫使用率
對于實例的使用限制
密碼管理
參數(shù) 說明
SESSIONS_PER_USER 用戶使用同時session數(shù)
CPU_PER_SESSION 1個session的CPU時間
CPU_PER_CALL 1個call的CPU時間
CONNECT_TIME 每session的連接時間
IDLE_TIME session連接最長閑置時間
LOGICAL_READS_PER_SECOND
LOGICAL_READS_PER_CALL
PRIVATE_SGA
COMPOSITE_LIMIT
2.權限
系統(tǒng)權限
GRANT 系統(tǒng)權限 TO 用戶名 | PUBLIC [,] [WITH ADMIN OPTION];
UNLIMITED TABLESPACE 用戶可以使用所有的表領域 包括SYSTEM和SYSAUX。
2)對象權限
GRANT 對象權限名 | ALL ON 對象名 TO 用戶名 | [WITH GRANT OPTION];
3.角色 ROLE
事前定義的角色中,可以訪問數(shù)據(jù)字典視圖的 SELECT_CATALOG_ROLE,包含了 SELECT ANY DICTIONARY的系統(tǒng)權限
4. 角色作成
CREATE ROLE角色名
IDENTIFIED {BY 用戶名 | EXTERNALLY | GLOBALLY AS '外部名'}
5. 默認角色的定義 設置用戶的默認角色
ALTER USER 用戶名 DEFAULT ROLE 角色名
6.激活角色
SET ROLE 角色名 IDENTIFIED BU 密碼
7.應用角色,只適用于特定的PL/SQL
CREATE ROLE 角色名 IDENTIFIED USING 存儲過程名
第八章 數(shù)據(jù)庫的安全
數(shù)據(jù)庫安全
1.權限最小化原則實踐
默認用戶帳號管理
管理權限的限制
權限(系統(tǒng)權限和對象權限)的賦予權限
DROP ANY TABLE權限以及其他的管理員權限
DBA權限
SYSDBA,SYSOPER權限
具有DBA權限的用戶
SQL> select grantee from dba_role_privs where granted_role='DBA';
具有SYSDBA,SYSOPER權限的用戶
SQL>select * from v$pwfile_users;
2.數(shù)據(jù)字典的保護
07_DICTIONARY_ACCESSIBILITY=FALSE
使用GRANT命令,只賦予必須的用戶具有訪問數(shù)據(jù)字典的權限
SELECT ANY DICTIONARY系統(tǒng)權限,可以訪問所有的數(shù)據(jù)字典
3.PUBLIC 用戶的權限
UTL_SMTP :使用數(shù)據(jù)庫SMTP郵件服務器,可以發(fā)送任意信件
UTL_TCP:
UTL_HTTP:
UTL_FILE:
DBMS_OBFUSCATION_TOOLKIT: 數(shù)據(jù)加密
4.OS目錄訪問的權限
使用UTL_FILE_DIR初始化參數(shù),PL/SQL對于操作系統(tǒng)目錄能進行設定。默認,能夠訪問目錄。
5.操作系統(tǒng)認證的無效化
REMOTE_OS_AUTHENT=FALSE
6.標準密碼安全技能的實現(xiàn)
FAILED_LOGIN_ATTEMPTS: 最多登錄失敗次數(shù)
PASSWORD_LOCK_TIME:超過失敗次數(shù)后,賬戶鎖定的天數(shù)(日)
PASSWORD_LIFE_TIME:密碼的有效期間
PASSWORD_GRACE_TIME:密碼變更的期間
PASSWORD_REUSE_TIME:密碼可再使用的天數(shù)(日)
PASSWORD_REUSE_MAX:最多可重用的回數(shù)
PASSWORD_VERIFY_FUNCTION:密碼復雜性評價的PL/SQL函數(shù)。$ORACLE_HOME/rdbms/admin/utlpwdmg.sql腳本來作成
7.數(shù)據(jù)庫活動的審查
8.數(shù)據(jù)庫審查
初始化參數(shù) AUDIT_TRAIL:審查結果的保存的位置
NONE: 審查無效
DB: 審查結果保存到數(shù)據(jù)庫
OS: 審查結果保存到系統(tǒng)文件上
AUDIT_FILE_DEST:目錄指定
審查: SQL審查,系統(tǒng)權限,對象權限,session審查。
首先,SQL審查,CREATE TABLE,DROP TABLE,TRUNCATE TABLE。
SESSION審查:用戶名成功,失敗,連接到實例。保存
連接的時刻
切斷的時刻
處理理論 I/O
處理的物理I/O
審查option的表示
ALL_DEF_AUDIT_OPTS:默認審查
DBA_STMT_AUDIT_OPTS:sql審查
DBA_PRIV_AUDIT_OPTS:權限審查
DBA_OBJ_AUDIT_OPTS:schema對象權限審查
-: 不審查
S: session別的審查
A:Access類的審查
9.審查結果的表示
DBA_AUDIT_TRAIL:所有審查實體的確認
DBA_AUDIT_EXISTS:AUDIT EXISTS/AUDIT NOEXISTS記錄的確認
DBA_AUDIT_OBJECT:對象相關的確認
DBA_AUDIT_SESSION:Session相關記錄的確認
DBA_AUDIT_STATEMENT:SQL相關的確認
10.基于值的審查:使用trig
11.FGA
DBMS_FGA審查策略
FGA策略:DBMS_FGA.ADD_POLICY
DBMS_FGA.ENABLE_POLICY,DBMS_FGA.DISABLE_POLICY
已經存在的策略再追加,就會發(fā)生錯誤
SQL審查
所有的SQL審查,使用NULL條件
審查條件沒有效的情況下,訪問審查對象會發(fā)生錯誤
事件處理不存在的情況下,只做成記錄
FGA審查實體
DBA_FGA_AUDIT_TRAIL:所有FGA事件確認
ALL_AUDIT_POLICIES:現(xiàn)在用戶能夠訪問的所有FGA策略
DBA_AUDIT_POLICIES:數(shù)據(jù)庫內的所有FGA策略
USER_AUDIT_POLICIES:用戶對象的所有FGA策略
AUDIT_SYS_OPERATIONS