oracle數(shù)據(jù)庫的安全包含兩部分:
1.一部分是os的安全
2.網(wǎng)絡(luò)的安全
2.oracle軟件本身的安全
os的安全依賴相應(yīng)的操作系統(tǒng)及管理員的技術(shù)水平,我們這里只談?wù)刼racle的安全
我了解的oracle軟件的安全包含:
1.更改oracle的默認(rèn)監(jiān)聽端口號(hào)
2.給監(jiān)聽器加密碼
3.oracle控制ip的連接
下面將針對(duì)這三個(gè)方面測(cè)試學(xué)習(xí)
---------oracle默認(rèn)監(jiān)聽端口更改--------------
1. 更改oracle的默認(rèn)監(jiān)聽端口號(hào)
修改端口號(hào)的整體步驟
1.1 。 查看當(dāng)前監(jiān)聽的狀態(tài)
1.2 。 停止監(jiān)聽
1.3 。 修改監(jiān)聽文件的端口號(hào)
1.4 。 修改初始化參數(shù)local_listener
1.5 . 重啟監(jiān)聽器
1.6 。 修改完畢,使用新端口登錄測(cè)試
實(shí)踐步驟:
1.1 。 查看當(dāng)前監(jiān)聽的狀態(tài)
C:/Documents and Settings/skate_db>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-7月 -2008 12:1
1:19
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
啟動(dòng)日期 19-7月 -2008 11:47:59
正常運(yùn)行時(shí)間 0 天 0 小時(shí) 23 分 19 秒
跟蹤級(jí)別 off
安全性 ON: Password or Local OS Authentication
SNMP OFF
監(jiān)聽程序參數(shù)文件 E:/oracle/product/10.2.0/db_3/network/admin/listener.o
ra
監(jiān)聽程序日志文件 E:/oracle/product/10.2.0/db_3/network/log/listener.log
監(jiān)聽端點(diǎn)概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=skate)(PORT=1522)))
服務(wù)摘要..
服務(wù) "PLSExtProc" 包含 1 個(gè)例程。
例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orcl" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orclXDB" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orcl_XPT" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
命令執(zhí)行成功
1.2 。 停止監(jiān)聽
C:/Documents and Settings/skate_db>lsnrctl stop
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-7月 -2008 13:1
6:15
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
命令執(zhí)行成功
1.3 。 修改監(jiān)聽文件的端口號(hào),用于網(wǎng)絡(luò)連接
把端口號(hào)修改為1523
# listener.ora Network Configuration File: E:/oracle/product/10.2.0/db_3/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:/oracle/product/10.2.0/db_3)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = skate)(PORT = 1523))
)
)
#----ADDED BY TNSLSNR 12-7月 -2008 13:26:50---
PASSWORDS_LISTENER = 3650F1EB3C37ABD9
#---------------------------------------------
1.4 。 修改初始化參數(shù)local_listener ,用于本地連接
C:/Documents and Settings/skate_db>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7月 19 13:24:02 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (address=(protocol=tcp)(host=s
kate)(port=1522))
SQL> alter system set local_listener="(address=(protocol=tcp)(host=skate)(port=1
523))";
系統(tǒng)已更改。
1.5 . 重啟監(jiān)聽器
C:/Documents and Settings/skate_db>lsnrctl start
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-7月 -2008 13:2
7:44
Copyright (c) 1991, 2005, Oracle. All rights reserved.
啟動(dòng)tnslsnr: 請(qǐng)稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系統(tǒng)參數(shù)文件為E:/oracle/product/10.2.0/db_3/network/admin/listener.ora
寫入E:/oracle/product/10.2.0/db_3/network/log/listener.log的日志信息
監(jiān)聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
監(jiān)聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=skate)(PORT=1523)))
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
啟動(dòng)日期 19-7月 -2008 13:27:47
正常運(yùn)行時(shí)間 0 天 0 小時(shí) 0 分 3 秒
跟蹤級(jí)別 off
安全性 ON: Password or Local OS Authentication
SNMP OFF
監(jiān)聽程序參數(shù)文件 E:/oracle/product/10.2.0/db_3/network/admin/listener.o
ra
監(jiān)聽程序日志文件 E:/oracle/product/10.2.0/db_3/network/log/listener.log
監(jiān)聽端點(diǎn)概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=skate)(PORT=1523)))
服務(wù)摘要..
服務(wù) "PLSExtProc" 包含 1 個(gè)例程。
例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...
命令執(zhí)行成功
1.6 。 修改完畢,使用新端口登錄測(cè)試
1.6.1。 檢查監(jiān)聽端口是否改變
C:/Documents and Settings/skate_db>netstat -an | find "1523"
TCP 0.0.0.0:1523 0.0.0.0:0 LISTENING
TCP 192.168.0.103:1523 192.168.0.103:2389 ESTABLISHED
TCP 192.168.0.103:2389 192.168.0.103:1523 ESTABLISHED
1.6.2。 查看監(jiān)聽器的狀態(tài)
C:/Documents and Settings/skate_db>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-7月 -2008 13:2
8:56
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
啟動(dòng)日期 19-7月 -2008 13:27:47
正常運(yùn)行時(shí)間 0 天 0 小時(shí) 1 分 10 秒
跟蹤級(jí)別 off
安全性 ON: Password or Local OS Authentication
SNMP OFF
監(jiān)聽程序參數(shù)文件 E:/oracle/product/10.2.0/db_3/network/admin/listener.o
ra
監(jiān)聽程序日志文件 E:/oracle/product/10.2.0/db_3/network/log/listener.log
監(jiān)聽端點(diǎn)概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=skate)(PORT=1523)))
服務(wù)摘要..
服務(wù) "PLSExtProc" 包含 1 個(gè)例程。
例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orcl" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orclXDB" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
服務(wù) "orcl_XPT" 包含 1 個(gè)例程。
例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...
命令執(zhí)行成功
1.6.3 。使用新端口號(hào)(1523)登錄測(cè)試一下
C:/Documents and Settings/skate_db>sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 7月 19 13:32:15 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
請(qǐng)輸入用戶名: sys/oracle@skate:1523/orcl as sysdba
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
SQL>
注意:當(dāng)修改了oracle默認(rèn)監(jiān)聽端口后,用tnsping會(huì)出錯(cuò)的,因?yàn)檫@個(gè)時(shí)候,oracle會(huì)
讀tnsnames。ora這個(gè)文件,而這個(gè)文件的端口號(hào)沒有更改,只要更改下這里對(duì)應(yīng)的
端口號(hào)就ok。
eg:
C:/Documents and Settings/skate_db>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-7月 -
2008 17:11:05
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的參數(shù)文件:
E:/oracle/product/10.2.0/db_3/network/admin/sqlnet.ora
已使用 TNSNAMES 適配器來解析別名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = skate)(P
ORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
TNS-12541: TNS: 無監(jiān)聽程序
在這里可以看到,oracle仍然用端口1521,我們更改下tnsnames.ora的端口號(hào),就ok了。
# tnsnames.ora Network Configuration File: E:/oracle/product/10.2.0/db_3/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = skate)(PORT = 1523))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
重啟監(jiān)聽器,在tnsping
C:/Documents and Settings/skate_db>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-7月 -
2008 17:22:00
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的參數(shù)文件:
E:/oracle/product/10.2.0/db_3/network/admin/sqlnet.ora
已使用 TNSNAMES 適配器來解析別名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = skate)(P
ORT = 1523)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (50 毫秒)
---------oracle默認(rèn)監(jiān)聽端口更改--------------
××××××××××××××××××××××××××oracle控制ip的連接××××××××××××××××××××××××
2 .oracle控制ip的連接(我們也可以用數(shù)據(jù)庫觸發(fā)器記錄用戶的登錄情況,但是不能記錄dba權(quán)限的用戶)
單純的設(shè)定允許的IP 和 禁止的IP,在oracle9i以前有文檔說增加或修改protocol.ora文件,
在9i及以后版本中真正起作用的是sqlnet.ora文件,我們修改sqlnet.ora其實(shí)是最好最快的方法
sqlnet.ora文件的功能:
1. Specify the client domain to append to unqualified names
2. Prioritize naming methods
3. Enable logging and tracing features
4. Route connections through specific processes
5. Configure parameters for external naming
6. Configure Oracle Advanced Security
7. Use protocol-specific parameters to restrict access to the database
我在這里用的就是第7個(gè)功能
在sqlnet.ora中增加如下部分
-----------------------------
tcp.validnode_checking=yes
#允許訪問的IP
tcp.invited_nodes=(ip1,ip2……)
#禁止訪問的IP
tcp.excluded_nodes=(ip1,ip2……)
之后重新啟動(dòng)監(jiān)聽器即可
eg:
# sqlnet.ora Network Configuration File: E:/oracle/product/10.2.0/db_3/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
#skate modify
tcp.validnode_checking=yes
tcp.invited_nodes=(192.168.0.103)
tcp.excluded_nodes=(192.168.0.10)
需要注意的問題:
1、 需要設(shè)置參數(shù)為YES,這樣才能激活。
2、 建議設(shè)置允許訪問的IP,因?yàn)镮P地址有可能被隨意修改,就不能起到自己的目的。
3、 TCP當(dāng)參數(shù)TCP.INVITED_NODES和TCP.EXCLUDED_NODES設(shè)置的地址相同的時(shí)候?qū)⒏采wTCP.EXCLUDED_NODES設(shè)置。
4、 需要重啟監(jiān)聽器才能生效。
5、 這個(gè)方式只是適合TCP協(xié)議。
6、 這個(gè)配置適用于9i以上版本。在9i之前的版本使用文件protocol.ora。
7、 在服務(wù)器上直接連接數(shù)據(jù)庫不受影響。
8、 這種限制方式事通過監(jiān)聽器來限制的。
9、 這個(gè)限制只是針對(duì)IP檢測(cè),對(duì)于用戶名檢測(cè)事不支持的。
××××××××××××××××××××××××××oracle控制ip的連接××××××××××××××××××××××××
3. 給監(jiān)聽器加密碼
聯(lián)系客服