Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(DWS)/ Guia de gerenciamento/ Conexão de clusters/ Uso dos drivers JDBC e ODBC para conectar a um cluster/ Configuração do JDBC para conectar-se a um cluster (modo de autenticação do IAM)
Atualizado em 2024-08-19 GMT+08:00

Configuração do JDBC para conectar-se a um cluster (modo de autenticação do IAM)

Visão geral

GaussDB(DWS) permite que você acesse bancos de dados usando autenticação do IAM. Quando você usa o programa de aplicação do JDBC para se conectar a um cluster, defina o nome de usuário, a credencial e outras informações do IAM ao configurar o URL do JDBC. Depois de fazer isso, quando você tentar acessar um banco de dados, o sistema gerará automaticamente uma credencial temporária e uma conexão será configurada.

  • Atualmente, somente os clusters 1.3.1 e versões posteriores e seus drivers JDBC correspondentes podem acessar os bancos de dados no modo de autenticação do IAM. Baixe o driver JDBC. Para mais detalhes, consulte Baixa do driver JDBC ou ODBC.
  • Os armazéns de dados de fluxo não oferecem suporte à conexão com um cluster no modo de autenticação do IAM.

O IAM oferece suporte a dois tipos de credencial de usuário: senha e ID da chave de acesso/Chave de acesso do segredo (AK/SK). A conexão de JDBC requer o último.

A conta do IAM que você usa para acessar um banco de dados deve ser concedida com a permissão DWS Database Access. Somente usuários com as permissões DWS Administrator e DWS Database Access podem se conectar a bancos de dados GaussDB(DWS) usando as credenciais temporárias de usuário do banco de dados geradas com base nos usuários do IAM.

A permissão DWS Database Access só pode ser concedida a grupos de usuários. Certifique-se de que sua conta do IAM esteja em um grupo de usuários com essa permissão.

No IAM, apenas os usuários do grupo admin têm permissões para gerenciar usuários. Isso requer que sua conta do IAM esteja no grupo de usuários admin. Caso contrário, entre em contato com o administrador da conta do IAM para conceder essa permissão à sua conta do IAM.

O processo de acesso a um banco de dados é o seguinte:

  1. Conceder a uma conta do IAM a permissão de acesso ao banco de dados GaussDB(DWS)
  2. Criar uma credencial de usuário do IAM
  3. Configurar a conexão JDBC para se conectar a um cluster usando a autenticação do IAM

Conceder a uma conta do IAM a permissão de acesso ao banco de dados GaussDB(DWS)

  1. Faça logon no console de gerenciamento do Huawei Cloud. Na lista de serviços, escolha Management & Governance > Identity and Access Management para entrar no console de gerenciamento do IAM.
  2. Modifique o grupo de usuários ao qual seu usuário do IAM pertence. Defina uma política para, conceda a permissão DWS Database Access e adicione seu usuário do IAM a ela.

    Somente os usuários do grupo de usuários admin do IAM podem executar esta etapa. No IAM, somente os usuários no grupo de usuários admin podem gerenciar usuários, incluindo a criação de grupos de usuários e usuários e a definição de direitos de grupos de usuários.

    Para obter detalhes, consulte Exibição ou modificação de informações do grupo de usuários no Guia de usuário do Identity and Access Management.

    Você também pode criar um grupo de usuários do IAM e definir uma política para, conceder permissões DWS Administrator e DWS Database Access e adicionar seu usuário do IAM a ele. Para obter detalhes, consulte Criação de um grupo de usuários e atribuição de permissões no Guia de usuário do Identity and Access Management.

Criar uma credencial de usuário do IAM

Você pode fazer logon no console de gerenciamento para criar um par AK/SK ou usar um existente.

  1. Faça logon no console de gerenciamento.
  2. Mova o cursor para o nome de usuário no canto superior direito e escolha My Credentials.
  3. Escolha Access Keys para exibir as chaves de acesso existentes. Você também pode clicar em Create Access Key para criar uma nova.

    O par AK/SK é tão importante que você pode baixar o arquivo de chave privada contendo as informações de AK/SK apenas quando você criar o par. No console de gerenciamento, você só pode exibir os AKs. Se você não tiver baixado o arquivo, obtenha-o de seu administrador ou crie um par AK/SK novamente.

    Cada usuário pode criar no máximo dois pares AK/SK, que são válidos permanentemente. Para garantir a segurança da conta, altere seus pares AK/SK periodicamente e mantenha-os seguros.

Configurar a conexão JDBC para se conectar a um cluster usando a autenticação do IAM

Configurar parâmetros de conexão JDBC

Tabela 1 Parâmetros de conexão do banco de dados

Parâmetro

Descrição

url

Descritor de conexão de banco de dado sgsjdbc4.jar/gsjdbc200.jar. A API do JDBC não fornece o recurso de repetição de conexão. Você precisa implementar o processamento de nova tentativa no código de serviço. O exemplo de URL é o seguinte:

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

Parâmetros de URL do JDBC:

  • jdbc:dws:iam é um prefixo no formato de URL.
  • dws-IAM-demo indica o nome do cluster que contém o banco de dados.
  • ap-southeast-1 indica a região onde o aglomerado reside. O JDBC acessa o cluster do GaussDB(DWS) na região correspondente e entrega o certificado do IAM ao cluster para autenticação de usuário do IAM. O endereço de serviço do GaussDB(DWS) foi registrado no arquivo de configuração do JDBC.
  • gaussdb indica o nome do banco de dados ao qual você deseja se conectar.
  • AccessKeyID e SecretAccessKey são o ID da chave de acesso e a chave de acesso de segredo correspondentes ao usuário do IAM especificado pelo DbUser.
  • Defina DbUser como o nome de usuário do IAM. Observe que a versão atual não oferece suporte a hifens (-) no nome de usuário do IAM.
    • Se o usuário especificado pelo DbUser estiver no banco de dados, a credencial de usuário temporária terá as mesmas permissões do usuário existente.
    • Se o usuário especificado por DbUser não existir no banco de dados e o valor de AutoCreate for true, um novo usuário nomeado pelo valor de DbUser será criado automaticamente. O usuário criado é um usuário de banco de dados comum por padrão.
  • O parâmetro AutoCreate é opcional. O valor padrão é false. Este parâmetro indica se criará automaticamente um usuário de banco de dados nomeado pelo valor de DbUser no banco de dados.
    • O valor true indica que um usuário é criado automaticamente. Se o usuário já existir, o usuário não será criado novamente.
    • O valor false indica que um usuário não foi criado. Se o nome de usuário especificado por DbUser não existe no banco de dados, um erro é retornado.

info

Propriedades de conexão de banco de dados. As propriedades comuns incluem o seguinte:

  • ssl: um tipo boolean. Indica se a conexão SSL é usada.
  • loglevel: um tipo integer. Ele define a quantidade de log registrada no DriverManager para LogStream ou LogWriter.

    Atualmente, os logs org.postgresql.Driver.DEBUG e org.postgresql.Driver.INFO são suportados. Se o valor for 1, somente org.postgresql.Driver.INFO (pouca informação) será registrada. Se o valor for maior ou igual a 2, org.postgresql.Driver.DEBUG e org.postgresql.Driver.INFO são impressos e as informações detalhadas do log são geradas. Seu valor padrão é 0, o que indica que nenhum registro é impresso.

  • charSet: um tipo string. Indica os conjuntos de caracteres usados quando os dados são enviados do banco de dados ou o banco de dados recebe dados.
  • prepareThreshold: um tipo integer. É usado para determinar os tempos de execução de PreparedStatement antes que a informação seja convertida em instruções preparadas no servidor. O valor padrão é 5.

Exemplo

 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;
}