oracle数据库只放行指定ip地址访问数据库

在生产环境下,为了主机安全性,往往会限制指定ip进行对数据库进行访问,确保数据库的安全性。

在 sqlnet.ora 文件中,有几个常用的参数可以用来限制数据库的访问:

  1. TCP.INVITED_NODES

    • 这个参数可以指定一个允许访问数据库的 IP 地址列表。只有在这个列表中的 IP 地址才能连接到数据库。
    • 例如: TCP.INVITED_NODES = (192.168.1.100, 192.168.1.101, 192.168.1.102)
  2. TCP.VALIDNODE_CHECKING

    • 这个参数可以控制是否启用对连接节点的有效性检查。
    • 当设置为 YES 时,Oracle 会检查连接节点的 IP 地址是否在 TCP.INVITED_NODES 或 TCP.EXCLUDED_NODES 中。
    • 当设置为 NO 时,则不会进行这种检查。

通过合理地配置这些参数,您就可以限制只有特定 IP 地址的客户端才能连接到 Oracle 数据库,从而提高数据库的安全性。

应用服务器:192.168.10.10

数据库服务器: 192.168.10.11

在添加指定ip时,记得将数据库本机的ipv4地址和127.0.0.1地址加入ip集合中

在sqlnet.ora文件下添加两行:添加:

#开启ip检查
tcp.validnode_checking=yes
#指定哪些ip能够进行访问oracle
tcp.invited_nodes=(192.168.10.10,192.168.10.11,127.0.0.1)



##重启监听即可

lsnrctl reload

### 设置连接到数据库的配置 #### 使用IDEA连接数据库 对于开发环境中的数据库连接,可以利用集成开发环境(IDE),如IntelliJ IDEA,来简化这一过程。通过IDEA连接数据库并不是指工程本身直接连接了数据库,而是提供了一种便捷的方式替代命令行工具进行数据库操作[^2]。 为了在IDEA中设置数据库连接: 1. 打开Database工具窗口。 2. 点击绿色加号按钮选择Data Source并指定使用的数据库类型。 3. 输入必要的连接详情,包括URL、用户名和密码。 4. 测试连接以验证其有效性。 #### 配置远程MySQL连接 当涉及到从另一台机器上访问MySQL实例时,需确保满足几个条件才能成功建立远程连接。这不仅涉及到了解目标服务器的具体位置和服务端口,还需要确认MySQL服务已正确配置为接受来自外部主机的请求,并且相应的防火墙规则也应调整到位以便放行这些流量[^3]。 具体步骤如下所示: - 修改`my.cnf`或`my.ini`文件内的绑定地址选项(`bind-address`)使之指向公共IP或是取消此设定让其监听所有接口; - 授予特定用户权限使其可以从任意地方登录; - 开启操作系统层面的安全策略允许TCP/IP通信经过所选端口(通常是3306); ```sql GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'%' IDENTIFIED BY 'yourpassword'; FLUSH PRIVILEGES; ``` #### PL/SQL Developer连接Oracle数据库 针对PL/SQL开发者来说,在尝试与远端Oracle数据库交互之前,先要在应用程序目录下放置名为instantclient_11_2的相关库文件夹,该资源包内含实现网络传输所需的基础组件定义[^4]。 完成上述准备工作之后,按照常规流程创建新的会话即可正常工作于选定的目标环境中。 #### Linux环境下ODBC连接达梦数据库 最后提及的是有关Linux平台上的ODBC驱动程序部署情况。这里推荐前往官方网站获取最新版本的Unix ODBC管理器软件包,并遵循官方文档指导完成整个安装流程[^5]。 一旦有了合适的驱动支持,就可以着手编写简单的Python脚本测试新搭建好的链路状态了: ```python import pyodbc conn_str = ( "DRIVER={DM7};" "SERVER=server_address;" "PORT=port_number;" "DATABASE=database_name;" "UID=user_id;" "PWD=password;" ) try: conn = pyodbc.connect(conn_str) except Exception as e: print(f"Connection failed: {e}") else: cursor = conn.cursor() result_set = cursor.execute("SELECT VERSION();").fetchone() print(result_set[0]) finally: if 'conn' in locals(): conn.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值