Conexão com um Usuário Proxy Mapeado

Para estabelecer conexão com um sistema de banco de dados usando um usuário proxy mapeado, primeiro mapeie usuários com proxy MySQL para grupos do serviço IAM e, em seguida, use o usuário proxy mapeado para estabelecer conexão com o sistema de banco de dados.

  1. Mapeie o usuário com proxy MySQL para um grupo do serviço IAM para obter a identidade e os privilégios do usuário MySQL. Consulte Mapeando um Usuário com Proxy MySQL para um Grupo do IAM.
  2. Conecte-se ao sistema de banco de dados com o usuário proxy MySQL mapeado. Consulte Conexão com um Usuário Proxy Mapeado.

Mapeando um Usuário com Proxy MySQL para um Grupo do IAM

Mapeie um usuário com proxy MySQL para um grupo do serviço IAM para conceder acesso ao MySQL Server do sistema de banco de dados.

Usando um Cliente de Linha de Comando

Use um cliente de linha de comando, como MySQL Client ou MySQL Shell, para mapear usuários com proxy MySQL para grupos do serviço IAM.

Esta tarefa requer o seguinte:
  • Os OCIDs dos grupos do serviço IAM e a tenancy na qual os grupos são definidos.
  • Um sistema de banco de dados em execução.
  • Uma VCN configurada corretamente que concede acesso de linha de comando ao sistema de banco de dados de uma instância de computação ou de uma máquina local.
  • Um cliente de linha de comando configurado corretamente.
  • Para obter a configuração necessária para usar o plug-in authentication_oci, consulte Pré-requisitos.
Faça o seguinte para criar e mapear usuários com proxy MySQL, <pUser1>, <pUser2> e <pUserN> para grupos do IAM, <IAMGroup1OCID>, <IAMGroup2OCID> e <IAMGroupNOCID> respectivamente:
Observação

Você pode criar e mapear qualquer número de usuários com proxy MySQL para grupos do serviço IAM.
  1. Crie usuários MySQL, <pUser1>, <pUser2> e <pUserN> para proxy:
    CREATE USER <pUser1> IDENTIFIED BY <password> ACCOUNT LOCK;
    CREATE USER <pUser2> IDENTIFIED BY <password> ACCOUNT LOCK;
    CREATE USER <pUserN> IDENTIFIED BY <password> ACCOUNT LOCK;
  2. Conceda os privilégios necessários (como privilégios de banco de dados, privilégios de tabela e privilégios de coluna) aos usuários com proxy MySQL usando a instrução GRANT. Consulte Instrução GRANT.
    Os usuários com proxy MySQL, <pUser1>, <pUser2> e <pUserN> com privilégios necessários são criados.
  3. Mapeie os usuários com proxy MySQL para grupos do IAM:
    CREATE USER ''@'<Hostname>' IDENTIFIED WITH 'authentication_oci'
    AS '{"tenancy": "<TenancyOCID>",
    "group_mapping": {"<IAMGroup1OCID>": "<pUser1>",
                      "<IAMGroup2OCID>": "<pUser2>",
                      "<IAMGroupNOCID>": "<pUserN>" }}';
    Se um usuário do serviço IAM fizer parte de mais de um grupo do serviço IAM e se você mapear esses grupos do serviço IAM para diferentes usuários com proxies MySQL, o usuário do serviço IAM será mapeado para o primeiro usuário com proxies MySQL (que corresponde ao grupo do serviço IAM do qual o usuário do serviço IAM faz parte) definido no campo group_mapping. Por exemplo, se um usuário do IAM fizer parte de <IAMGroup2OCID> e <IAMGroupNOCID>, ele será mapeado para o primeiro usuário com proxy MySQL, <pUser2>, que corresponde ao primeiro grupo do IAM do qual o usuário do IAM faz parte, <IAMGroup2OCID>.
    • CREATE USER: Crie um usuário anônimo que possa se conectar do <Hostname> com as credenciais corretas. O host pode ser restrito a um host ou grupo de hosts específico. Consulte CREATE USER.
    • <Hostname>: Especifique o nome do host do qual o usuário se conecta.

      A combinação nome de usuário e nome de host deve ser exclusiva para cada tenancy. Se você mapear ''@'hostname1' para uma tenancy em uma solicitação de mapeamento de grupo, não poderá reutilizar essa combinação de nome de usuário e nome de host para outra solicitação para uma tenancy diferente. Para executar vários mapeamentos para diferentes tenancies, use diferentes combinações de nome de usuário e nome de host, como ''@'hostname2'.

    • authentication_oci: Especifique o nome do plug-in de autenticação no MySQL Server.
    • tenancy: Especifique o OCID da tenancy na qual o usuário e o sistema de banco de dados residem. Você pode especificar uma tenancy por instrução CREATE USER.
    • group_mapping: Especifique uma lista de OCID do grupo para nomes de usuário proxy. Os OCIDs do grupo devem pertencer à tenancy definida no parâmetro tenancy. Para mapear grupos de outra tenancy, execute o comando CREATE USER novamente, com a tenancy, os grupos e os usuários necessários.
  4. Conceda privilégios de proxy ao usuário anônimo criado na etapa 3:
    GRANT PROXY ON '<pUser1>' TO ''@'<Hostname>';
    GRANT PROXY ON '<pUser2>' TO ''@'<Hostname>';
    GRANT PROXY ON '<pUserN>' TO ''@'<Hostname>';
Os usuários com proxy MySQL <pUser1>, <pUser1> e <pUserN> são mapeados para os grupos do serviço IAM, <IAMGroup1OCID>, <IAMGroup2OCID> e <IAMGroupNOCID> respectivamente, permitindo que os membros do grupo do serviço IAM acessem o MySQL Server com toda a identidade e os privilégios designados aos usuários com proxy MySQL.

Conexão com um Usuário Proxy Mapeado

Conecte-se a um sistema de banco de dados com um usuário proxy mapeado. O usuário proxy mapeado assume a identidade e os privilégios de um usuário com proxy MySQL. Os usuários locais, federados e provisionados podem usar um token de segurança do serviço IAM para estabelecer conexão com um sistema de BD. No entanto, somente usuários locais e provisionados podem usar um par de chaves de API para estabelecer conexão com um sistema de banco de dados.

Usando um Cliente de Linha de Comando

Use um cliente de linha de comando, como MySQL Client ou MySQL Shell, para estabelecer conexão com um sistema de banco de dados com um usuário proxy mapeado.

Esta tarefa supõe que você tenha o seguinte:
  • Um sistema de banco de dados em execução.
  • Um arquivo de configuração. Consulte o arquivo de configuração da CLI e do SDK.
  • Uma VCN configurada corretamente que concede acesso de linha de comando ao sistema de banco de dados de uma instância de computação ou de uma máquina local.
  • O OCID ou o ID do usuário do domínio do provedor de identidades do usuário proxy mapeado.
  • Para obter a configuração necessária para usar o plug-in authentication_oci, consulte Pré-requisitos.
Execute uma das seguintes etapas para estabelecer conexão com o sistema de banco de dados usando um usuário proxy mapeado:
  1. No cliente MySQL: Execute o seguinte comando:
    mysql -h <DBSystemEndpointIPAddress> --port <PortNumber> --oci-config-file=<PathToOciConfig> 
    --authentication-oci-client-config-profile=<ConfigProfile> -u <UserOCIDOrUserIDFromIdp>
    • h: Especifique o endereço IP do ponto final do sistema de banco de dados.
    • port: Especifique a porta na qual o sistema de banco de dados está fazendo listening. O valor padrão é 3306.
    • oci-config-file: (Opcional) Especifique a localização do arquivo de configuração. Se você não especificar essa opção, o cliente MySQL lerá a configuração a partir do local padrão, %HOMEDRIVE%%HOMEPATH%\.oci\config para sistemas Windows e ~/.oci/config, para todos os outros sistemas operacionais.
    • authentication-oci-client-config-profile: (Opcional) Especifique o nome do perfil de configuração, que você especifica no arquivo de configuração, cujas opções de configuração o cliente MySQL deve usar para autenticação. Se você não especificar essa opção, o cliente MySQL lerá as opções de configuração mencionadas no perfil DEFAULT.
    • u: Dependendo se você estiver se conectando com um usuário local, federado ou provisionado, especifique o OCID (Oracle Cloud Identifier) ou o ID do usuário no domínio do provedor de identidades:
      • Usuário local: Especifique o OCID do usuário do serviço IAM.
      • Usuário federado: Especifique o ID do usuário no domínio do provedor de identidades.
      • Usuário provisionado com chaves de API: Especifique o OCID do usuário do serviço IAM do usuário local.
      • Usuário provisionado com token de segurança do serviço IAM: Especifique o ID do usuário no domínio do provedor de identidades.
  2. No MySQL Shell 8.0: Execute o seguinte comando:
    mysqlsh <UserOCIDOrUserIDFromIdp>@<Hostname> --auth-method=authentication_oci_client
    • <UserOCIDOrUserIDFromIdp>: Dependendo se você estiver se conectando com um usuário local, federado ou provisionado, especifique o OCID (Oracle Cloud Identifier) ou o ID do usuário no domínio do provedor de identidades:
      • Usuário local: Especifique o OCID do usuário do serviço IAM.
      • Usuário federado: Especifique o ID do usuário no domínio do provedor de identidades.
      • Usuário provisionado com chaves de API: Especifique o OCID do usuário do serviço IAM do usuário local.
      • Usuário provisionado com token de segurança do serviço IAM: Especifique o ID do usuário no domínio do provedor de identidades.
    • <<Hostname>: Especifique o endereço IP do ponto final do sistema de banco de dados.
    • auth-method=authentication_oci_client: Especifique o nome do plug-in do cliente usado para autenticar a solicitação. MySQL O Shell usa apenas a configuração de CLI padrão.
      Observação

      Esse método de autenticação só suporta o protocolo MySQL clássico.
    Observação

    MySQL O Shell 8.0.33 ou posterior permite que o local do arquivo de configuração seja configurado com a opção oci.configFile.
  3. No MySQL Shell 8.1 ou mais recente: Execute o seguinte comando:
    mysqlsh <UserOCIDOrUserIDFromIdp>@<Hostname> --oci-config-file=<PathToOciConfig> 
    --authentication-oci-client-config-profile=<ConfigProfile> --auth-method=authentication_oci_client
    • <UserOCIDOrUserIDFromIdp>: Dependendo se você estiver se conectando com um usuário local, federado ou provisionado, especifique o OCID (Oracle Cloud Identifier) ou o ID do usuário no domínio do provedor de identidades:
      • Usuário local: Especifique o OCID do usuário do serviço IAM.
      • Usuário federado: Especifique o ID do usuário no domínio do provedor de identidades.
      • Usuário provisionado com chaves de API: Especifique o OCID do usuário do serviço IAM do usuário local.
      • Usuário provisionado com token de segurança do serviço IAM: Especifique o ID do usuário no domínio do provedor de identidades.
    • <<Hostname>: Especifique o endereço IP do ponto final do sistema de banco de dados.
    • oci-config-file: (Opcional) Especifique a localização do arquivo de configuração. Se você não especificar essa opção, o Shell MySQL lerá a configuração do local padrão, %HOMEDRIVE%%HOMEPATH%\.oci\config para sistemas Windows e ~/.oci/config, para todos os outros sistemas operacionais.
    • authentication-oci-client-config-profile: (Opcional) Especifique o nome do perfil de configuração, que você especifica no arquivo de configuração, cujas opções de configuração o Shell MySQL deve usar para autenticação. Se você não especificar essa opção, o Shell MySQL lerá as opções de configuração mencionadas no perfil DEFAULT.
    • auth-method=authentication_oci_client: Especifique o nome do plug-in do cliente usado para autenticar a solicitação.
      Observação

      Esse método de autenticação só suporta o protocolo MySQL clássico.
O usuário proxy mapeado, <UserOCIDOrUserIDFromIdp>, está conectado ao sistema de banco de dados.