Фича, которая позволяет запрещать подключение клиентов через LISTENER.
Изначально имеем пустой файл sqlnet.ora на сервере:
С клиента у нас есть возможность подключиться к базе
Добавим в файл sqlnet.ora строки
и перезагружаем листенер командой
Таким образом мы запретили подключаться к серверу с машины sphaera144. С остальных машин подключение разрешено.
ПРИМЕЧАНИЕ: если на сервере файла sqlnet.ora вообще не было и мы его создаем заново, то lsnrctl reload не хватает. Необходимо использовать lsnrctl stop/start.
Изменим строку в файле sqlnet.ora на сервере с tcp.excluded_nodes=(sphaera144) на tcp.invited_nodes=(sphaera144).
и перезапустим листенер lsnrctl reload.
Пробуем подключится с машины sphaera144
Подключение разрешено только с SPHAERA144. Со всех остальных машин подключение запрещено.
Теперь добавим обе строки:
После подключения:
INVITED_NODES имеем преимущество перед EXCLUDED_NODES
выводы
1. Если нет файла sqlnet.ora на сервере, то listener необходимо перезагружать полностью. В остальных случаях хватает lsnrctl reload
2. При добавлении адреса в invited_nodes все остальные адреса запрещены.
3. invited_nodes имеет преимущество перед excluded_nodes -- подключиться можно только с тех адресов, которые разрешены.
Изначально имеем пустой файл sqlnet.ora на сервере:
> cat sqlnet.ora
>
С клиента у нас есть возможность подключиться к базе
C:>sqlplus sps/sps@v-pc-dev-3
SQL*Plus: Release 10.2.0.3.0 - Production on Sat Feb 27 20:36:28 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Release 10.2.0.1.0 - Production
SQL>
Добавим в файл sqlnet.ora строки
tcp.validnode_checking=yes
tcp.excluded_nodes=(sphaera144)
и перезагружаем листенер командой
lsnrctl reload
После перезагрузки при подключении с клиента имеем:C:\>sqlplus sps/sps@v-pc-dev-3
SQL*Plus: Release 10.2.0.3.0 - Production on Sat Feb 27 20:40:29 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
ERROR:
ORA-12547: TNS:lost contact
Таким образом мы запретили подключаться к серверу с машины sphaera144. С остальных машин подключение разрешено.
ПРИМЕЧАНИЕ: если на сервере файла sqlnet.ora вообще не было и мы его создаем заново, то lsnrctl reload не хватает. Необходимо использовать lsnrctl stop/start.
Изменим строку в файле sqlnet.ora на сервере с tcp.excluded_nodes=(sphaera144) на tcp.invited_nodes=(sphaera144).
и перезапустим листенер lsnrctl reload.
Пробуем подключится с машины sphaera144
C:\>sqlplus sps/sps@v-pc-dev-3
SQL*Plus: Release 10.2.0.3.0 - Production on Sat Feb 27 20:45:43 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Release 10.2.0.1.0 - Production
С другой машины имеемC:\>sqlplus sps/sps@v-pc-dev-3
SQL*Plus: Release 10.2.0.3.0 - Production on Sat Feb 27 20:40:29 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
ERROR:
ORA-12547: TNS:lost contact
Подключение разрешено только с SPHAERA144. Со всех остальных машин подключение запрещено.
Теперь добавим обе строки:
tcp.invited_nodes=(sphaera144)
tcp.excluded_nodes=(sphaera144)
После подключения:
C:\>sqlplus sps/sps@v-pc-dev-3
SQL*Plus: Release 10.2.0.3.0 - Production on Sat Feb 27 20:45:43 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Release 10.2.0.1.0 - Production
INVITED_NODES имеем преимущество перед EXCLUDED_NODES
выводы
1. Если нет файла sqlnet.ora на сервере, то listener необходимо перезагружать полностью. В остальных случаях хватает lsnrctl reload
2. При добавлении адреса в invited_nodes все остальные адреса запрещены.
3. invited_nodes имеет преимущество перед excluded_nodes -- подключиться можно только с тех адресов, которые разрешены.
Комментариев нет:
Отправить комментарий