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/ GaussDB(DWS)/ Guía de gestión/ Conexión de clústeres/ Uso de los controladores JDBC y ODBC para conectarse a un clúster/ Configuración de JDBC para conectarse a un clúster (modo de autenticación de IAM)
Actualización más reciente 2024-06-12 GMT+08:00

Configuración de JDBC para conectarse a un clúster (modo de autenticación de IAM)

Descripción

GaussDB(DWS) le permite acceder a bases de datos mediante autenticación IAM. Cuando utilice el programa de aplicación JDBC para conectarse a un clúster, establezca el nombre de usuario de IAM, la credencial y otra información a medida que configure la URL de JDBC. Después de hacer esto, cuando intenta acceder a una base de datos, el sistema generará automáticamente una credencial temporal y se configurará una conexión.

  • Actualmente, solo los clústeres 1.3.1 y versiones posteriores y sus controladores JDBC correspondientes pueden acceder a las bases de datos en modo de autenticación IAM. Descargue el controlador JDBC. Para obtener más información, véase Descargar el controlador JDBC u ODBC.
  • Los almacenes de datos de flujo no admiten la conexión a un clúster en modo de autenticación IAM.

IAM admite dos tipos de credenciales de usuario: contraseña y ID de clave de acceso/clave de acceso secreto (AK/SK). La conexión JDBC requiere este último.

La cuenta de IAM que utiliza para acceder a una base de datos debe tener el permiso de DWS Database Access. Solo los usuarios con permisos de DWS Administrator y DWS Database Access pueden conectarse a las bases de datos de GaussDB(DWS) utilizando las credenciales de usuario de base de datos temporales generadas en función de los usuarios de IAM.

El permiso de DWS Database Access solo se puede conceder a los grupos de usuarios. Asegúrese de que su cuenta de IAM esté en un grupo de usuarios con este permiso.

En IAM, solo los usuarios del grupo de admin tienen los permisos para gestionar usuarios. Esto requiere que su cuenta de IAM esté en el grupo de usuarios de admin. De lo contrario, póngase en contacto con el administrador de la cuenta de IAM para conceder este permiso a su cuenta de IAM.

El proceso de acceso a una base de datos es el siguiente:

  1. Concesión del permiso de acceso a la base de datos de GaussDB(DWS) a una cuenta de IAM
  2. Creación de una credencial de usuario de IAM
  3. Configuración de la conexión JDBC para conectarse a un clúster mediante autenticación IAM

Concesión del permiso de acceso a la base de datos de GaussDB(DWS) a una cuenta de IAM

  1. Inicie sesión en la consola de gestión de Huawei Cloud En la lista de servicios, elija Management & Governance > Identity and Access Management para entrar en la consola de gestión de IAM.
  2. Modifique el grupo de usuarios al que pertenece el usuario de IAM. Establezca una política para, conceda el permiso de DWS Database Access y agregue su usuario de IAM a ella.

    Solo los usuarios del grupo de usuarios de admin de IAM pueden realizar este paso. En IAM, solo los usuarios del grupo de usuarios de admin pueden gestionar usuarios, incluida la creación de grupos de usuarios y usuarios y la configuración de derechos de grupo de usuarios.

    Para obtener más información, consulte Visualización o modificación de la información del grupo de usuarios en la Guía del usuario de Identity and Access Management.

    También puede crear un grupo de usuarios de IAM y establecer una política para, conceder permisos de DWS Administrator y DWS Database Access y agregarle a su usuario de IAM. Para obtener más información, consulte Creación de un grupo de usuarios y asignación de permisos en la Guía del usuario de Identity and Access Management.

Creación de una credencial de usuario de IAM

Puede iniciar sesión en la consola de gestión para crear un par AK/SK o utilizar uno existente.

  1. Inicie sesión en la consola de gestión.
  2. Mueva el cursor hasta el nombre de usuario en la esquina superior derecha y elija My Credentials.
  3. Elija Access Keys para ver las claves de acceso existentes. También puede hacer clic en Create Access Key para crear uno nuevo.

    El par AK/SK es tan importante que puede descargar el archivo de clave privada que contiene la información AK/SK solo cuando cree el par. En la consola de gestión, solo puede ver los AK. Si no ha descargado el archivo, obténgalo de su administrador o cree un par AK/SK de nuevo.

    Cada usuario puede crear un máximo de dos pares de AK/SK, que son válidos permanentemente. Para garantizar la seguridad de la cuenta, cambie sus pares de AK/SK periódicamente y manténgalos seguros.

Configuración de la conexión JDBC para conectarse a un clúster mediante autenticación IAM

Configuración de parámetros de conexión de JDBC

Tabla 1 Parámetros de conexión de base de datos

Parámetro

Descripción

url

Descriptor de conexión de base de datos de gsjdbc4.jar/gsjdbc200.jar. La API de JDBC no proporciona la capacidad de reintento de conexión. Es necesario implementar el procesamiento de reintentos en el código de servicio. El ejemplo de URL es el siguiente:

jdbc:dws:iam://dws-IAM-demo:ap-southeast-1/gaussdb?AccessKeyID=XXXXXXXXXXXXXXXXXXXX&SecretAccessKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&DbUser=user_test&AutoCreate=true

Parámetros de JDBC URL:

  • jdbc:dws:iam es un prefijo en el formato URL.
  • dws-IAM-demo indica el nombre del clúster que contiene la base de datos.
  • ap-southeast-1 indica la región donde reside el clúster. JDBC accede al clúster de GaussDB(DWS) en la región correspondiente y entrega el certificado de IAM al clúster para la autenticación de usuario de IAM. La dirección de servicio GaussDB(DWS) se ha registrado en el archivo de configuración JDBC.

    Para obtener más información sobre las regiones de GaussDB(DWS), visite Regiones y puntos de conexión.

  • gaussdb indica el nombre de la base de datos a la que desea conectarse.
  • AccessKeyID y SecretAccessKey son el ID de clave de acceso y la clave de acceso secreta correspondientes al usuario de IAM especificado por DbUser.
  • Establezca DbUser en el nombre de usuario de IAM. Tenga en cuenta que la versión actual no admite guiones (-) en el nombre de usuario de IAM.
    • Si el usuario especificado por DbUser existe en la base de datos, la credencial de usuario temporal tiene los mismos permisos que el usuario existente.
    • Si el usuario especificado por DbUser no existe en la base de datos y el valor de AutoCreate es true, se crea automáticamente un nuevo usuario nombrado por el valor de DbUser. El usuario creado es un usuario de base de datos común de forma predeterminada.
  • El parámetro AutoCreate es opcional. El valor predeterminado es false. Este parámetro indica si se debe crear automáticamente un usuario de base de datos nombrado por el valor de DbUser en la base de datos.
    • El valor true indica que se crea automáticamente un usuario. Si el usuario ya existe, el usuario no se creará de nuevo.
    • El valor false indica que no se ha creado un usuario. Si el nombre de usuario especificado por DbUser no existe en la base de datos, se devuelve un error.

info

Propiedades de conexión de base de datos. Las propiedades comunes incluyen las siguientes:

  • ssl: un tipo de boolean. Indica si se utiliza la conexión SSL.
  • loglevel: un tipo entero. Establece la cantidad de registro registrada en DriverManager para LogStream o LogWriter.

    Actualmente, se admiten org.postgresql.Driver.DEBUG y org.postgresql.Driver.INFO. Si el valor es 1, solo se registra org.postgresql.Driver.INFO (pequeña información). Si el valor es mayor o igual a 2, se imprimen los registros org.postgresql.Driver.DEBUG y org.postgresql.Driver.INFO, y se genera información detallada del registro. Su valor predeterminado es 0, que indica que no se imprimen registros.

  • charSet: un tipo de cadena. Indica conjuntos de caracteres utilizados cuando se envían datos desde la base de datos o cuando la base de datos recibe datos.
  • prepareThreshold: un tipo entero. Se utiliza para determinar los tiempos de ejecución de PreparedStatement antes de que la información se convierta en instrucciones preparadas en el servidor. El valor predeterminado es de 5.

Ejemplo

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//The following uses gsjdbc4.jar as an example.
// The following code encapsulates the database connection obtaining operations into an API. You can connect to the database by specifying the region where the cluster is located, cluster name, access key ID, secret access key, and the corresponding IAM username.
public static Connection GetConnection(String clustername, String regionname, String AK, String SK,
    String username) {
    // Driver class.
    String driver = "org.postgresql.Driver";
    // Database connection descriptor.
    String sourceURL = "jdbc:dws:iam://" + clustername + ":" + regionname + "/postgresgaussdb?" + "AccessKeyID="
        + AK + "&SecretAccessKey=" + SK + "&DbUser=" + username + "&autoCreate=true";

    Connection conn = null;

    try {
        // Load the driver.
        Class.forName(driver);
    } catch (ClassNotFoundException e) {
        return null;
    }
    try {
        // Create a connection.
        conn = DriverManager.getConnection(sourceURL);
        System.out.println("Connection succeed!");
    } catch (SQLException e) {
        return null;
    }
    return conn;
}