Oracle 資料庫安全許可權配置標準
配置標準
賬戶授權及認證管理
按照賬戶分配許可權
【目的】應按照使用者分配賬戶,避免不同使用者間共享賬號。
【具體配置】
create user abc1 identified by password1;
建立role,並給role授權,把role賦給不同的使用者刪除無關賬號
CREATE ROLE role_name;
GRANT CONNECT,RESOURCE TO role_name;
GRANT SELECT ON table_name TO role_name;
……
GRANT role_name TO username;
刪除無關賬號
【目的】應按刪除或鎖定與資料庫執行,維護等工作無關的賬號。
【具體配置】
alter user username lock;
drop user username cascade;
建議鎖定三個月後刪除
限制DBA 遠端登入
【目的】限制具有資料庫超級管理員(SYSDBA)許可權的使用者遠端登入。
【具體配置】
在spfile中設定REMOTE_LOGIN_PASSWORDFILE=NONE來禁止SYSDBA使用者從遠端登入。
在sqlnet.ora中設定SQLNET.AUTHENTICATION_SERVICES=NONE來禁止SYSDBA角色本地直接登入。
【檢查操作】
1. 以Oracle使用者登入到系統
2. 以sqlplus “/ as sysdba”登入到sqlplus環境中
3. 使用show parameter 命令來檢查引數REMOTE_LOGIN_PASSWORDFILE是否設定為NONE。show parameter REMOTE_LOGIN_PASSWORDFILE
4. 檢查$ORACLE_HOME/network/admin/sqlnet.ora檔案中引數SQLNET.AUTHENTICATION_SERVICES是否被設定成NONE。
最小許可權
【目的】在資料庫許可權配置能力內,根據使用者的業務需要,配置其所需的最小許可權。
【具體配置】
給使用者賦予相對最小許可權
grant 許可權 to username;
回收使用者多餘許可權
revoke 許可權 from username;
白名單設定
【目的】控制哪些主機IP能夠連線至資料庫伺服器,防止DB遭受攻擊
【具體配置】
在sqlnet.ora中設定TCP.VALIDNODE_CHECKING=yes開啟客戶端驗證,TCP_INVITED_NODES=(127.1.1.0,本機IP,IP1,IP2……)
【檢查操作】
1. 以Oracle使用者登入到系統
2. 編輯$ORACLE_HOME/network/admin/sqlnet.ora檔案新增TCP.VALIDNODE_CHECKING=yes和TCP_INVITED_NODES=(127.1.1.0,本機IP,IP1,IP2……)認證的主機IP
3. 重新載入監聽生效lsnrctl relocate
資料庫角色
【目的】使用資料庫角色(ROLE)來管理物件的許可權。
【具體配置】
1. 使用CREATE ROLE命令建立角色
2. 使用GRANT命令將相應的系統、物件或ROLE的許可權賦予應用使用者。
【檢查操作】
1. 以DBA使用者登入到sqlplus中。
2. 透過查詢dba_role_privs、dba_sys_privs和dba_tab_privs等檢視來檢查是否使用ROLE來管理物件許可權。
資料字典保護
【目的】啟動資料字典保護,只有SYSDBA使用者才能訪問資料字典基表
【具體配置】
透過設定下面初始化引數來限制只有SYSDBA許可權的使用者才能訪問資料庫字典。
O7_DICTIONARY_ACCESSIBILITY=FALSE
【檢查操作】
以普通dba使用者登入到資料庫,不能檢視X$開頭的表,比如:
Select * from sys.x$kgllk;
1. 以oracle使用者登入系統。
2. 以sqlplus / as sysdba登入
3. 使用show parameter 命令檢查引數O7_DICTIONARY_ACCESSIBILITY是否設定為FALSE。
組作業系統使用者數量
【目的】限制在DBA組中的作業系統使用者數量,通常DBA組中只有Oracle安裝使用者。
【具體配置】
可透過下面類似命令來建立profile,並把它賦予一個使用者
CREATE PROFILE app_user LIMIT
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME 60
PASSWORD_REUSE_TIME 60
PASSWORD_REUSE_MAX 5
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_LOCK_TIME 1/24
PASSWORD_GRACE_TIME 90;
ALTER USER username PROFILE app_user;
可透過設定profile來限制資料庫賬戶口令的複雜程度,口令生存週期和賬戶的鎖定方式等。
使用者屬性
【目的】對使用者屬性進行控制,包括密碼策略、資源限制等。
【具體配置】
透過/etc/passwd檔案來檢查是否有其他使用者在DBA組中。
口令
口令複雜度
【目的】對於採用靜態口令進行認證的資料庫,口令長度至少6位,幷包括數字、大小寫字母和特殊符號4類中至少2類。
【具體配置】
為使用者建立profile,調整PASSWORD_VERIFY_FUNCTION,指定密碼複雜度
【檢測操作】
修改密碼為不符合要求的密碼,將失敗。
口令期限
【目的】對於採用靜態口令認證技術的資料庫,賬戶口令的生存期不長於90天。
【具體配置】
為使用者建立profile,指定PASSWORD_GRACE_TIME為90天
【檢測操作】
到期不修改密碼,密碼將會失效。連線資料庫將不會成功。
口令歷史
【目的】對於採用靜態口令認證技術的資料庫,應配置資料庫,使使用者不能重複使用最近5次(含5次)內已使用的口令。
【具體配置】
為使用者建立profile,指定PASSWORD_REUSE_MAX為5
失敗登入次數
【目的】對於採用靜態口令認證技術的資料庫,應配置當使用者連線認證失敗冊書超過10次(不含10次),鎖定該使用者使用的賬戶。
【具體配置】
為使用者建立profile,指定FAILED_LOGIN_ATTEMPTS為6
遵循作業系統賬戶策略
【目的】Oracle軟體賬戶的訪問控制可遵循作業系統賬戶的安全策略,比如不要共享賬戶、強制定期修改密碼、密碼需要一定的複雜度等。
【具體配置】
使用作業系統一級的賬戶安全管理來保護Oracle軟體賬戶。
【檢查操作】
每三個月自動提示更改密碼,過期後不能登入。
每三個月強制修改Oracle軟體賬戶密碼,並且密碼需要滿足一定的複雜度,符合作業系統的密碼要求
日誌(帕拉迪)
登入日誌
【目的】資料庫應配置日誌功能,對使用者登入進行記錄,記錄內容包括使用者登入使用的賬戶、登入是否成功、登入時間以及遠端登入時使用者使用的IP地址。
【具體配置】
方法一:安裝審計類軟體(推薦)
方法二:建立ORACLE登入觸發器捕獲資料(適合於9i、10G,11G可直接檢視AUD$,)
操作日誌
【目的】資料庫應配置日誌功能,記錄使用者對資料庫的操作,包括但不限於以下內容:賬戶建立、刪除和許可權修改、口令修改、讀取和修改資料庫配置、讀取和修改業務敏感資料。記錄需要包含操作時間,操作使用者、操作內容以及操作結果。
【具體配置】
安裝審計類軟體(推薦)
方法二:建立ORACLE登入觸發器捕獲資料(適合於9i、10G,11G可直接檢視AUD$,)
資料庫審計策略
【目的】根據業務要求制定資料庫審計策略。
【具體配置】
1. 透過設定引數audit_trail=db或os來開啟資料庫審計。
2. 然後使用audit命令對相應的物件進行審計設定。
【檢測操作】
對審計的物件進行一次資料庫操作,檢查操作是否被記錄。
1. 檢查初始化引數audit_trail是否設定。
2. 檢查dba_audit_trail檢視中或$ORACLE_BASE/admin/adump目錄下是否有資料。
AUDIT 會有相應資源開銷,請檢查系統資源是否充足。
2.4 其他
限制DBA 使用者訪問敏感資料
【目的】使用Oracle提供的Data Vault選件來限制有DBA許可權的使用者訪問敏感資料。
【具體配置】
方法一:安裝審計類軟體(推薦)
方法二:Oracle Data Vault是作為資料庫安全解決方案的一個單獨選件,主要功能是將資料庫管理賬戶的許可權和應用資料訪問的許可權分開,Data Vault可限制有DBA許可權的使用者訪問敏感資料。設定較為複雜,具體請檢視配置文件。
連線超時
【目的】在某些應用環境下可設定資料庫連線超時,比如資料庫將自動斷開超過10分鐘的空閒遠端連線。
【具體配置】
在$ORACLE_HOME/network/admin/sqlnet.ora中設定下面引數:
SQLNET.EXPIRE_TIME=10
10 分鐘以上的無任何操作的空閒資料庫連線被自動斷開。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23732248/viewspace-2757987/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫安全之許可權與角色資料庫
- 資料安全之許可權控制
- MySQL資料庫許可權體系入門(5)---管理資料庫許可權MySql資料庫
- 資料庫的許可權管理資料庫
- Oracle資料庫的系統和物件許可權Oracle資料庫物件
- oracle資料庫使用者建立、許可權分配Oracle資料庫
- Oracle資料庫使用者許可權控制 - Role - SynonymOracle資料庫
- 資料庫學習:許可權管理資料庫
- Mysql資料庫許可權問題MySql資料庫
- 資料許可權
- Oracle 使用者許可權管理與常用許可權資料字典列表Oracle
- SpringSecurity許可權管理系統實戰—九、資料許可權的配置SpringGse
- Oracle標準資料庫稽核Oracle資料庫
- 許可權系統:一文搞懂功能許可權、資料許可權
- 1.5. 關於資料庫管理員的安全和許可權資料庫
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- ylbtech-許可權管理-資料庫設計-功能許可權管理技術資料庫
- MySQL資料庫許可權體系入門(4)---管理全域性許可權MySql資料庫
- 資料庫許可權-儲存過程資料庫儲存過程
- ORACLE許可權Oracle
- MySQL資料庫許可權體系入門(3)---管理使用者許可權MySql資料庫
- ORACLE資料庫標準審計Oracle資料庫
- MySQL資料庫Root許可權MOF方法提權研究MySql資料庫
- Oracle資料庫scott使用者建立view檢視許可權Oracle資料庫View
- 使用Oracle VPD(Virtual Private Database)實現資料庫層面資料許可權OracleDatabase資料庫
- PerconaServer5.6(資料庫MySQL使用者配置和資料庫使用者許可權配置)Server資料庫MySql
- PostgreSQL資料庫使用者許可權管理SQL資料庫
- MySQL之test資料庫預設許可權MySql資料庫
- SQL Server資料庫SA許可權總結SQLServer資料庫
- 系統許可權資料庫設計方案資料庫
- 七、許可權管理和資料庫備份資料庫
- 提取使用者許可權或是不同資料庫使用者許可權的同步資料庫
- LightDB/PostgreSQL標準業務建立語句【賦予讀寫許可權和只讀許可權】SQL
- Oracle建立表空間、建立資料庫使用者、賦許可權Oracle資料庫
- oracle 許可權集合Oracle
- oracle 許可權管理Oracle
- Oracle許可權(一)Oracle
- oracle許可權全集Oracle