『ORACLE』 創建監聽(11g)

創建監聽

1)靜態註冊LISTENER 1521
2)動態註冊LSNR2 1526


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = enmo)(PORT = 1521))
    )
  )


SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=ENMOEDU)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME=ENMOEDU))
  )



LSNR2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = enmo)(PORT = 1526))
    )
  )

  


創建enmoedu連接串,利用1526端口可連接到數據庫
--用於動態註冊LSNR2監聽
LSNR2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = enmo)(PORT = 1526))
    )
  )




ENMOEDU =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = enmo)(PORT = 1526))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ENMOEDU)
    )
  )
  
  
sqlnet.ora
在SQLNET.ora文件中設置以下參數可以實現IP訪問限制:


$ pwd
/u01/app/oracle/product/10.2.0/db_1/network/admin
$ vi sqlnet.ora
tcp.validnode_checking=yes #確定是否對客戶機IP地址進行檢查
tcp.invited_nodes=(ip1,ip2......) #列舉允許連接的客戶機的IP地址,以逗號分隔
tcp.excluded_nodes=(ip1,ip2......) #列舉不允許連接的客戶機的IP地址,以逗號分隔


設置後需要重啓監聽:
$ lsnrctl reload


在設置這些參數前後可以通過“tnsping 網絡連接串”來測試是否可連:
$ tnsping orcldb


通過監聽器的限制,通常屬於輕量級,比在數據庫內部通過觸發器進行限制效率要高。


需要注意的地方:
1、tcp.invited_nodes與tcp.excluded_nodes都存在,以tcp.invited_nodes爲主。
2、一定要許可或不要禁止服務器本機的IP地址,否則通過lsnrctl將不能啓動或停止監聽,因爲該過程監聽程序會通過本機的IP訪問監聽器,而該IP被禁止了,但是通過服務啓動或關閉則不影響。
3、修改之後,一定要重起監聽才能生效,而不需要重新啓動數據庫。
4、任何平臺都可以,但是隻適用於TCP/IP協議。


我機子上的sqlnet.ora內容如下:
$ cat sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.


NAMES.DIRECTORY_PATH= (TNSNAMES)


# wangnc added, 20080925
tcp.validnode_checking=yes
tcp.invited_nodes=(172.18.1.171,172.18.1.164,192.168.41.42)




2.禁用操作系統認證方式登錄數據庫
禁用的方法很簡單,僅需在sqlnet.ora配置文件中添加一條“SQLNET.AUTHENTICATION_SERVICES=(NONE)”即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章