Connexion avec un utilisateur mandataire mappé

Pour vous connecter à un système de base de données à l'aide d'un utilisateur mandataire mappé, mappez d'abord les utilisateurs mandatés MySQL aux groupes IAM, puis utilisez l'utilisateur mandataire mappé pour vous connecter au système de base de données.

  1. Mappez l'utilisateur mandaté MySQL à un groupe IAM pour obtenir l'identité et les privilèges de l'utilisateur MySQL. Voir Mappage d'un utilisateur mandaté MySQL à un groupe IAM.
  2. Connectez-vous au système de base de données avec l'utilisateur mandataire MySQL mappé. Voir Connexion avec un utilisateur mandataire mappé.

Mappage d'un utilisateur mandaté MySQL à un groupe IAM

Mappez un utilisateur mandaté MySQL à un groupe IAM pour accorder l'accès au serveur MySQL Server du système de base de données.

Utilisation d'un client de ligne de commande

Utilisez un client de ligne de commande tel que le client MySQL ou l'interpréteur de commandes MySQL pour mapper les utilisateurs mandatés MySQL aux groupes IAM.

Cette tâche nécessite les éléments suivants :
  • OCID des groupes GIA et de la location dans laquelle les groupes sont définis.
  • Système de base de données en cours d'exécution.
  • VCN correctement configuré qui accorde l'accès de ligne de commande au système de base de données à partir d'une instance de calcul ou d'une machine locale.
  • Client de ligne de commande correctement configuré.
  • Pour la configuration requise pour utiliser le plugiciel authentication_oci, voir Préalables.
Effectuez les opérations suivantes pour créer et mapper les utilisateurs mandatés MySQL, <pUser1>, <pUser2> et <pUserN> aux groupes IAM, <IAMGroup1OCID>, <IAMGroup2OCID> et <IAMGroupNOCID> respectivement :
Note

Vous pouvez créer et mapper un nombre illimité d'utilisateurs mandatés par MySQL à des groupes IAM.
  1. Créez des utilisateurs MySQL, <pUser1>, <pUser2> et <pUserN> pour le mandataire :
    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. Accordez les privilèges requis (tels que les privilèges de base de données, les privilèges de table et les privilèges de colonne) aux utilisateurs mandatés MySQL à l'aide de l'énoncé GRANT. Voir Énoncé GRANT.
    Les utilisateurs mandatés MySQL, <pUser1>, <pUser2> et <pUserN> avec les privilèges requis sont créés.
  3. Mappez les utilisateurs mandatés MySQL aux groupes IAM :
    CREATE USER ''@'<Hostname>' IDENTIFIED WITH 'authentication_oci'
    AS '{"tenancy": "<TenancyOCID>",
    "group_mapping": {"<IAMGroup1OCID>": "<pUser1>",
                      "<IAMGroup2OCID>": "<pUser2>",
                      "<IAMGroupNOCID>": "<pUserN>" }}';
    Si un utilisateur IAM fait partie de plusieurs groupes IAM et que vous mappez ces groupes IAM à des utilisateurs mandatés MySQL différents, l'utilisateur IAM est mappé au premier utilisateur mandaté MySQL (correspondant au groupe IAM dont fait partie l'utilisateur IAM) défini dans le champ group_mapping. Par exemple, si un utilisateur IAM fait partie de <IAMGroup2OCID> et de <IAMGroupNOCID>, il est mappé au premier utilisateur mandaté MySQL, <pUser2>, qui correspond au premier groupe IAM dont fait partie l'utilisateur IAM, <IAMGroup2OCID>.
    • CREATE USER : Créez un utilisateur anonyme qui peut se connecter à partir de <Hostname> avec les données d'identification correctes. L'hôte peut être limité à un hôte ou à un groupe d'hôtes spécifique. Voir CREATE USER.
    • <Hostname> : Spécifiez le nom d'hôte à partir duquel l'utilisateur se connecte.

      La combinaison nom d'utilisateur-nom d'hôte doit être unique pour chaque location. Si vous mappez ''@'hostname1' à une location dans une demande de mappage de groupe, vous ne pouvez pas réutiliser cette combinaison nom d'utilisateur-nom d'hôte pour une autre demande à une autre location. Pour effectuer plusieurs mappages à différentes locations, utilisez différentes combinaisons nom d'utilisateur-nom d'hôte, par exemple ''@'hostname2'.

    • authentication_oci : Spécifiez le nom du plugiciel d'authentification sur MySQL Server.
    • tenancy : Spécifiez l'OCID de la location dans laquelle réside l'utilisateur et le système de base de données. Vous pouvez spécifier une location par énoncé CREATE USER.
    • group_mapping : Spécifiez une liste d'OCID de groupe pour les noms d'utilisateur mandataire Les OCID de groupe doivent appartenir à la location définie dans le paramètre tenancy. Pour mapper des groupes d'une autre location, exécutez de nouveau la commande CREATE USER avec la location, les groupes et les utilisateurs requis.
  4. Accordez des privilèges de mandataire à l'utilisateur anonyme créé à l'étape 3 :
    GRANT PROXY ON '<pUser1>' TO ''@'<Hostname>';
    GRANT PROXY ON '<pUser2>' TO ''@'<Hostname>';
    GRANT PROXY ON '<pUserN>' TO ''@'<Hostname>';
Les utilisateurs mandatés MySQL <pUser1>, <pUser1> et <pUserN> sont mappés aux groupes IAM, respectivement <IAMGroup1OCID>, <IAMGroup2OCID> et <IAMGroupNOCID>, ce qui permet aux membres du groupe IAM d'accéder au serveur MySQL Server avec toutes les identités et tous les privilèges affectés aux utilisateurs mandatés MySQL.

Connexion avec un utilisateur mandataire mappé

Connectez-vous à un système de base de données avec un utilisateur mandataire mappé. L'utilisateur mandataire mappé assume l'identité et les privilèges d'un utilisateur mandaté MySQL. Les utilisateurs locaux, fédérés et provisionnés peuvent utiliser un jeton de sécurité IAM pour se connecter à un système de base de données. Toutefois, seuls les utilisateurs locaux et provisionnés peuvent utiliser une paire de clés d'API pour se connecter à un système de base de données.

Utilisation d'un client de ligne de commande

Utilisez un client de ligne de commande tel que le client MySQL ou l'interpréteur de commandes MySQL pour vous connecter à un système de base de données avec un utilisateur mandataire mappé.

Cette tâche suppose que vous disposez des éléments suivants :
  • Système de base de données en cours d'exécution.
  • Fichier de configuration. Voir Fichier de configuration des trousses SDK et de l'interface de ligne de commande.
  • VCN correctement configuré qui accorde l'accès de la ligne de commande au système de base de données à partir d'une instance de calcul ou d'une machine locale.
  • OCID ou ID utilisateur du domaine du fournisseur d'identités de l'utilisateur mandataire mappé.
  • Pour la configuration requise pour utiliser le plugiciel authentication_oci, voir Préalables.
Exécutez l'une des étapes suivantes pour vous connecter au système de base de données à l'aide d'un utilisateur mandataire mappé :
  1. À partir du client MySQL : Exécutez la commande suivante :
    mysql -h <DBSystemEndpointIPAddress> --port <PortNumber> --oci-config-file=<PathToOciConfig> 
    --authentication-oci-client-config-profile=<ConfigProfile> -u <UserOCIDOrUserIDFromIdp>
    • h : Spécifiez l'adresse IP du point d'extrémité du système de base de données.
    • port : Spécifiez le port sur lequel le système de base de données écoute. La valeur par défaut est 3306.
    • oci-config-file : (Facultatif) Spécifiez l'emplacement du fichier de configuration. Si vous ne spécifiez pas cette option, le client MySQL lit la configuration à partir de l'emplacement par défaut, %HOMEDRIVE%%HOMEPATH%\.oci\config pour les systèmes Windows et ~/.oci/config, pour tous les autres systèmes d'exploitation.
    • authentication-oci-client-config-profile : (Facultatif) Spécifiez le nom du profil de configuration, que vous spécifiez dans le fichier de configuration, dont le client MySQL doit utiliser les options de configuration pour l'authentification. Si vous ne spécifiez pas cette option, le client MySQL lit les options de configuration mentionnées dans le profil DEFAULT.
    • u : Selon que vous êtes connecté à un utilisateur local, fédéré ou provisionné, spécifiez l'OCID (identificateur Oracle Cloud) ou l'ID utilisateur du domaine du fournisseur d'identités :
      • Utilisateur local : Spécifiez l'OCID de l'utilisateur IAM de l'utilisateur local.
      • Utilisateur fédéré : Spécifiez l'ID utilisateur du domaine du fournisseur d'identités.
      • Utilisateur provisionné avec clés d'API : Spécifiez l'OCID de l'utilisateur IAM de l'utilisateur local.
      • Utilisateur provisionné avec jeton de sécurité IAM : Spécifiez l'ID utilisateur du domaine du fournisseur d'identités.
  2. À partir de l'interpréteur de commandes MySQL 8.0 : Exécutez la commande suivante :
    mysqlsh <UserOCIDOrUserIDFromIdp>@<Hostname> --auth-method=authentication_oci_client
    • <UserOCIDOrUserIDFromIdp> : Selon que vous êtes connecté à un utilisateur local, fédéré ou provisionné, spécifiez l'OCID (identificateur Oracle Cloud) ou l'ID utilisateur du domaine du fournisseur d'identités :
      • Utilisateur local : Spécifiez l'OCID de l'utilisateur IAM de l'utilisateur local.
      • Utilisateur fédéré : Spécifiez l'ID utilisateur du domaine du fournisseur d'identités.
      • Utilisateur provisionné avec clés d'API : Spécifiez l'OCID de l'utilisateur IAM de l'utilisateur local.
      • Utilisateur provisionné avec jeton de sécurité IAM : Spécifiez l'ID utilisateur du domaine du fournisseur d'identités.
    • <<Hostname> : Spécifiez l'adresse IP du point d'extrémité du système de base de données.
    • auth-method=authentication_oci_client : Spécifiez le nom du plugiciel client utilisé pour authentifier la demande. L'interpréteur de commandes MySQL utilise uniquement la configuration d'interface de ligne de commande par défaut.
      Note

      Cette méthode d'authentification prend uniquement en charge le protocole MySQL classique.
    Note

    L'interpréteur de commandes MySQL version 8.0.33 ou ultérieure permet de configurer l'emplacement du fichier de configuration avec l'option oci.configFile.
  3. À partir de l'interpréteur de commandes MySQL version 8.1 ou ultérieure : Exécutez la commande suivante :
    mysqlsh <UserOCIDOrUserIDFromIdp>@<Hostname> --oci-config-file=<PathToOciConfig> 
    --authentication-oci-client-config-profile=<ConfigProfile> --auth-method=authentication_oci_client
    • <UserOCIDOrUserIDFromIdp> : Selon que vous êtes connecté à un utilisateur local, fédéré ou provisionné, spécifiez l'OCID (identificateur Oracle Cloud) ou l'ID utilisateur du domaine du fournisseur d'identités :
      • Utilisateur local : Spécifiez l'OCID de l'utilisateur IAM de l'utilisateur local.
      • Utilisateur fédéré : Spécifiez l'ID utilisateur du domaine du fournisseur d'identités.
      • Utilisateur provisionné avec clés d'API : Spécifiez l'OCID de l'utilisateur IAM de l'utilisateur local.
      • Utilisateur provisionné avec jeton de sécurité IAM : Spécifiez l'ID utilisateur du domaine du fournisseur d'identités.
    • <<Hostname> : Spécifiez l'adresse IP du point d'extrémité du système de base de données.
    • oci-config-file : (Facultatif) Spécifiez l'emplacement du fichier de configuration. Si vous ne spécifiez pas cette option, l'interpréteur de commandes MySQL lit la configuration à partir de l'emplacement par défaut, %HOMEDRIVE%%HOMEPATH%\.oci\config pour les systèmes Windows et ~/.oci/config, pour tous les autres systèmes d'exploitation.
    • authentication-oci-client-config-profile : (Facultatif) Spécifiez le nom du profil de configuration, que vous spécifiez dans le fichier de configuration, dont l'interpréteur de commandes MySQL doit utiliser les options de configuration pour l'authentification. Si vous ne spécifiez pas cette option, l'interpréteur de commandes MySQL lit les options de configuration mentionnées dans le profil DEFAULT.
    • auth-method=authentication_oci_client : Spécifiez le nom du plugiciel client utilisé pour authentifier la demande.
      Note

      Cette méthode d'authentification prend uniquement en charge le protocole MySQL classique.
L'utilisateur mandataire mappé, <UserOCIDOrUserIDFromIdp>, est connecté au système de base de données.