【问题标题】:Oracle Server 11g: How Can I Disable Remote Connections?Oracle Server 11g:如何禁用远程连接?
【发布时间】:2012-07-02 09:04:47
【问题描述】:

如何禁用与 Oracle Server 11g 的远程连接?
一种方法是,我可以对端口 1521 使用防火墙。
是否可以禁用远程连接并仅保留 Oracle Server 的本地连接而无需防火墙但仅使用 Oracle Server 设置?
例如,SQL Server 2008 (Express) 具有远程连接服务:SQL Browser。如果未运行,则无法远程连接服务器。
Oracle Server 也是这样吗?

【问题讨论】:

    标签: oracle connection


    【解决方案1】:

    您可以在地址localhost127.0.0.1 上设置您的监听器,这意味着它只能在该机器上可见。防火墙不会有任何东西 - 机器的外部 IP 地址上的端口 1521 上不会有任何监听。您可以通过netstat 确认。

    您不能直接从数据库中执行此操作,如果这就是您所说的“仅使用 Oracle 服务器设置”的话;所有远程连接都通过侦听器传递给数据库。

    【讨论】:

    • 改成127.0.0.1是我的第一个想法。我更改了侦听器的设置(在 Oracle 网络管理器的帮助下):协议:TCP/IP;主机:localhost(或 127.0.0.1);端口:1521。远程和本地连接变得不可能......
    • 本地连接如何? (“本地”是什么意思 - 您使用的是哪个客户端?)什么连接设置?
    • 这意味着,我有 Windows Server 和 Oracle Server。我需要做的:可以将桌面应用程序(个人)连接到本地的 Oracle 服务器(从这个 Windows 服务器);无法从本地网络的另一台计算机连接到 Oracle 服务器。
    • @Chaki_Black - 是的,只要应用程序也连接到 localhost。例如,在 SQL Developer 中,您需要将连接更改为指向 127.0.0.1;如果您使用的是 Java,则 JDBC 连接字符串需要将您的 PC 名称或 IP 地址替换为 127.0.0.1;如果您使用的东西依赖于 TNS 分辨率,那么您需要更新您的 tnsnames.ora 以使 TNS 别名指向 127.0.0.1。我猜你有一些东西仍在使用服务器名称,所以你需要找到它并更改它。
    【解决方案2】:

    如果只想本地连接,不要启动Oracle Listener,只使用ORACLE_SID连接数据库。只要监听器正在运行,就可以远程访问数据库。

    你没有解释为什么你有这个要求,所以我开始猜测。能够进行应用程序维护可能是一个很好的理由。如果是这样,为什么不使用受限会话权限?在这种情况下,将实例设置为受限会话,以便只有具有受限会话权限的用户才能连接到数据库实例。通常只有特定的管理员帐户才能拥有此权限。

    alter system enable restricted session;
    
    • 停止维护期间不应存在的现有会话。
    • 进行维护。

      更改系统禁用受限会话;

    我希望这会有所帮助。

    【讨论】:

    • 是的,保持“监听器”关闭是在维护窗口期间限制来自远程客户端/机器的数据库访问的好选择。
    • 可以使用lsnrctl stop;和 lsnrctl 启动;同样。
    猜你喜欢
    • 1970-01-01
    • 2013-06-10
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 2013-03-07
    相关资源
    最近更新 更多