Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Relational Database Service/ Guía del usuario/ Trabajar con RDS for PostgreSQL/ Conexión de instancia/ Conexión a una instancia de RDS for PostgreSQL a través de JDBC
Actualización más reciente 2024-06-06 GMT+08:00

Conexión a una instancia de RDS for PostgreSQL a través de JDBC

Aunque el certificado SSL es opcional si elige conectarse a una base de datos a través de la conectividad de bases de datos Java (JDBC), descargue un certificado SSL para cifrar las conexiones por seguridad.

Prerrequisitos

Usted está familiarizado con:

  • Conceptos básicos de computación.
  • Java.
  • JDBC.

Obtención y uso de JDBC

Conexión con el certificado SSL

Descargue el certificado SSL y verifique el certificado antes de conectarse a las bases de datos.

En el área DB Information de la página Basic Information, haga clic en en el campo SSL para descargar el certificado raíz o el paquete de certificados.

  1. Conéctese a la instancia de base de datos de RDS for PostgreSQL a través de JDBC.

    jdbc:postgresql://<instance_ip>:<instance_port>/<database_name>?sslmode=verify-ca&sslrootcert=<ca.pem>
    Tabla 1 Descripción de parámetro

    Parámetro

    Descripción

    <instance_ip>

    Si intenta obtener acceso a la instancia de base de datos RDS a través de un ECS, establezca instance_ip en la dirección IP flotante que se muestra en la página Basic Information de la instancia de base de datos a la que desea conectarse.

    Si intenta acceder a la instancia de base de datos RDS a través de una EIP, establezca instance_ip en la EIP que se ha enlazado a la instancia de base de datos.

    <instance_port>

    Introduzca el puerto de la base de datos que se muestra en la página Basic Information. Valor predeterminado 5432

    <database_name>

    Introduzca el nombre de la base de datos a la que desea conectarse. Valor predeterminado: postgres

    sslmode

    Ingrese al modo de conexión SSL.

    verify-ca: Quiero que mis datos estén cifrados y acepto la sobrecarga. Quiero estar seguro de que me conecto a un servidor en el que confío.

    Para obtener más información sobre otras opciones, consulte https://jdbc.postgresql.org/documentation/use/#connection-parameters/.

    sslrootcert

    Ruta del certificado de CA para la conexión SSL. Para obtener más información, consulte https://jdbc.postgresql.org/documentation/use/#connection-parameters/.

    Ejemplo de script en Java:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class MyConnTest {
    	final public static void main(String[] args) {
    		Connection conn = null;
    		// set sslmode here.
    		// with ssl certificate and path.
    		String url = "jdbc:postgresql://192.168.0.225:5432/my_db_test?sslmode=verify-ca&sslrootcert=/home/Ruby/ca.pem";
    
    		try {
    			Class.forName("org.postgresql.Driver");
    			conn = DriverManager.getConnection(url, "root", "password");
    			System.out.println("Database connected");
    
    			Statement stmt = conn.createStatement();
    			ResultSet rs = stmt.executeQuery("SELECT * FROM mytable WHERE columnfoo = 500");
    			while (rs.next()) {
    				System.out.println(rs.getString(1));
    			}
    
    			rs.close();
    			stmt.close();
    			conn.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    			System.out.println("Test failed");
    		} finally {
    			// release resource ....
    		}
    	}
    }

Conexión sin el certificado SSL

No es necesario descargar el certificado SSL porque no se requiere la verificación del certificado en el servidor.

  1. Conéctese a la instancia de base de datos de RDS for PostgreSQL a través de JDBC.

    jdbc:postgresql://<instance_ip>:<instance_port>/<database_name>?sslmode=disable
    Tabla 2 Descripción de parámetro

    Parámetro

    Descripción

    <instance_ip>

    Si intenta obtener acceso a la instancia de base de datos RDS a través de un ECS, establezca instance_ip en la dirección IP flotante que se muestra en la página Basic Information de la instancia de base de datos a la que desea conectarse.

    Si intenta acceder a la instancia de base de datos RDS a través de una EIP, establezca instance_ip en la EIP que se ha enlazado a la instancia de base de datos.

    <instance_port>

    Introduzca el puerto de la base de datos que se muestra en la página Basic Information. Valor predeterminado 5432

    <database_name>

    Introduzca el nombre de la base de datos a la que desea conectarse. Valor predeterminado: postgres

    sslmode

    Ingrese al modo de conexión SSL.

    disable: No me importa la seguridad y no quiero pagar la sobrecarga de encriptación.

    Para obtener más información sobre otras opciones, consulte https://jdbc.postgresql.org/documentation/use/#connection-parameters/.

    Ejemplo de script en Java:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class MyConnTest {
    	final public static void main(String[] args) {
    		Connection conn = null;
    		// set sslmode here.
    		// no ssl certificate, so do not specify path.
    		String url = "jdbc:postgresql://192.168.0.225:5432/my_db_test?sslmode=disable";
    		try {
    			Class.forName("org.postgresql.Driver");
    			conn = DriverManager.getConnection(url, "root", "password");
    			System.out.println("Database connected");
    
    			Statement stmt = conn.createStatement();
    			ResultSet rs = stmt.executeQuery("SELECT * FROM mytable WHERE columnfoo = 500");
    			while (rs.next()) {
    				System.out.println(rs.getString(1));
    			}
    			rs.close();
    			stmt.close();
    			conn.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    			System.out.println("Test failed");
    		} finally {
    			// release resource ....
    		}
    	}
    }