Gestion des utilisateurs et de leurs privilèges

Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Apprendre MySQL 8.0 par la pratique
Revoir le teaser Je m'abonne
Transcription

Cette leçon fait partie de la formation
89,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

DescriptionProgrammeAvis

Cette leçon fait partie de la formation
89,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

Être capable de créer et exploiter une base de données MySQL au quotidien de manière autonome.

Cette formation a été conçue à destination d'un public sans connaissances préalables sur les bases de données, avec l'ambition de transmettre les notions fondamentales permettant d'entrer sereinement et efficacement dans l'univers des bases de données, et d'exploiter MySQL au quotidien de manière autonome.

Elle permet de tirer parti de logiciels de qualité conçus spécialement pour travailler avec les bases de données : MySQL Workbench et Datagrip.

Elle met l'accent sur la pratique, et comprend de nombreuses démonstrations, mises en situations, exercices corrigés et commentés.

Elle met à disposition en ressources téléchargeables 3 bases de données portant sur des thèmes variés (médicaments vétérinaires, sécurité routière, prénoms), les scripts SQL des démonstrations les plus longues, et intègre un code promotionnel vous permettant de bénéficier d'une prolongation à 4 mois de la période d'essai gratuite de Datagrip.

Voir plus
Jusqu'ici, nous nous sommes connectés à notre serveur de bases de données en utilisant essentiellement DataGrip comme client. Depuis DataGrip, on s'est connectés en utilisant un compte particulier qui est le compte d'utilisateur Root. C'est en quelque sorte un super administrateur, celui qui a les pleins pouvoirs sur l'ensemble des bases de données gérées par le serveur. Comme d'habitude, un grand pouvoir implique de grandes responsabilités et il n'est pas bon de le remettre entre toutes les mains. C'est pour cette raison que MySQL propose de créer des utilisateurs différents avec des pouvoirs ayant une étendue plus ou moins importante selon les responsabilités que l'on souhaite leur attribuer. Dans cette vidéo, on va s'intéresser à la manière de créer ces utilisateurs et comment on peut leur donner des pouvoirs, qu'on appelle des privilèges. Pour commencer, on peut déjà s'intéresser à la manière d'identifier l'utilisateur actuellement connecté à la base de données dans la session qu'on est en train d'utiliser. En principe, on le sait, mais ça peut toujours être intéressant de le voir affiché. On dispose pour ce faire de la fonction Current User. Je vais exécuter cette instruction. Celle-ci va me retourner root arrow base pour cent. Ce que ça signifie, c'est que le nom d'utilisateur, c'est root. Arrow base pour cent signifie que cet utilisateur est autorisé à se connecter au serveur depuis n'importe quelle machine. Ce qui doit figurer derrière le arrow base, c'est le nom de la machine hôte. Lorsqu'on utilise pour cent, ça indique que n'importe quelle machine peut convenir. On peut indiquer ici une adresse IP, par exemple. On y reviendra dans cette vidéo. Ça veut dire que dans la session que j'utilise actuellement, j'ai les pleins pouvoirs. C'est ça qui va me permettre aussi de créer un certain nombre d'utilisateurs et de leur donner des privilèges. Parce qu'effectivement, n'importe qui ne peut pas créer des utilisateurs ni même encore leur donner des privilèges. Il faut bien sûr en avoir plus qu'eux pour être en mesure de leur octroyer des droits. MySQL stocke les informations relatives aux utilisateurs que le serveur de base de données gère dans une table système de la base de données MySQL. La table en question, c'est la table nommée User. Si on veut avoir des informations sur les utilisateurs et sur leurs droits, il faut aller regarder dans cette table. Elle comporte de nombreuses colonnes. Comme on peut s'en rendre compte en exécutant l'instruction Desk ou Describe MySQL.user, où MySQL est le nom de la base de données et User le nom de la table, on voit qu'on a de nombreuses colonnes. En fait, 51 colonnes dans cette table. Pour le moment, il y en a deux qui vont nous intéresser en particulier. C'est Host et User qui contiennent les informations qui se trouvent de part et d'autre du arbre base dans l'information qu'on a observée précédemment. Si j'exécute cette instruction, Select User Host from MySQL.user, j'ai la liste des utilisateurs que MySQL connaît actuellement sur mon serveur. Je vois que j'ai le compte d'utilisateur que je suis en train d'utiliser, mais je vois qu'il y en a d'autres. En particulier, il y a un autre compte qui s'appelle Root et qu'on utilise en local, c'est-à-dire sur le serveur lui-même quand on y est connecté. Pour créer d'autres comptes d'utilisateur, on va utiliser la commande Create User à laquelle on peut rajouter, comme on en a l'habitude, If Not Exist, qui évite qu'une erreur se produise si l'utilisateur existe déjà. Ici, je crée un compte d'utilisateur nommé Olivier et je rajoute derrière Identified By Test123, une chaîne de caractères encadrée de simples codes qui fera office de mot de passe. Évidemment, celui-ci est particulièrement vulnérable, il s'agit d'en choisir des meilleurs, mais pour l'exemple, ça suffira. Notez que le fait de ne pas préciser la machine à partir de laquelle cet utilisateur nommé Olivier pourra se connecter, lui permet de se connecter à partir de n'importe quelle machine. Je peux être plus précis en indiquant olivier-localhost, par exemple, ou olivier-172.18.0.1, auquel cas, je ne pourrai, si je suis Olivier, me connecter qu'à partir de la machine dont l'IP est celle qui est indiquée ici. Précisons que s'il n'y a rien d'indiqué, s'il n'y a pas de » quelque chose d'indiqué dans le nom de l'utilisateur, alors c'est la même chose qu'utiliser » pourcentage entre codes. C'est exactement pareil. Je vais créer cet utilisateur. Et si je rafraîchis la requête précédemment créée, je vois que j'ai de nouveau un utilisateur qui a été créé, qui s'appelle Olivier. Je peux même essayer de me connecter avec ce compte à mon serveur. Je vais, pour ce faire, passer dans Zunavit de commandes. Ici, j'utilise Commander, mais vous pouvez utiliser ce que vous souhaitez. Sur ma cause, vous pouvez utiliser le terminal High Term 2, par exemple. On va exécuter la commande mayesquelle. « U » pour préciser le nom d'utilisateur. Ici, c'est Olivier. « P » va nous demander d'indiquer le mot de passe. Je vais préciser « test 1, 2, 3 » et me voilà connecté à la base de données. Et si je fais un « select current user », je vais avoir le nom d'utilisateur que j'utilise actuellement, donc « olivier » pourcentage. Pour me déconnecter, je fais simplement un « exit » et je vais faire un « clear » pour purger l'écran. Notons qu'on peut avoir, comme on l'a fait pour les tables ou pour les vues, la possibilité d'afficher le script de création de l'utilisateur. Pour ce faire, on utilise la commande « show create » suivie du nom d'utilisateur. On peut également renommer un utilisateur en utilisant la commande « rename user », le nom actuel, tout, le nom de destination. Si je fais un « rename user olivier to roger », que je rafraîchis ici cette requête-là, eh bien « olivier » sera remplacé par « roger ». Je peux bien sûr changer le mot de passe de l'utilisateur en utilisant la commande « alter user » suivie du nom d'utilisateur et ensuite je mets « identified by » suivi du nouveau mot de passe. Donc en clair, ici je suis « root », je n'ai même pas besoin de connaître le mot de passe actuel d'un utilisateur pour le changer. Désormais, pour me connecter à la base de données, j'utiliserai le compte « roger » avec le mot de passe « test roger ». Notez que la casse est importante. Donc si j'écris tout en minuscules, je n'arriverai pas à me connecter. Essayons donc de nous connecter avec ce compte. On va faire « mysql-u ». Cette fois-ci, on va utiliser l'utilisateur « roger-p ». On peut aussi indiquer une option « password » en précisant ici directement le mot de passe qu'on veut utiliser. Ce n'est pas forcément une bonne pratique parce que le mot de passe est écrit en clair dans l'instruction. Il faut savoir qu'elle existe, mais il vaut mieux utiliser l'option «-p » plutôt que «-password ». Là, je suis connecté avec le compte « roger » et je peux même, par exemple, faire un « show databases » pour me permettre de voir quelles sont les bases de données qui sont présentes sur le serveur. Et là, on va se rendre compte qu'en fait, j'ai relativement peu de droits en tant que nouvel utilisateur. Pour le coup, la seule base de données à laquelle j'ai accès, c'est la base de données « information-schéma ». Je sais pourtant qu'il y a d'autres bases de données sur ce serveur, mais pour le moment, je n'ai aucun droit sur elle. Donc, en fait, je n'y ai même pas accès. Alors, on va laisser cette session ouverte pour le moment. Je voulais vous montrer qu'il était possible de provoquer l'expiration d'un mot de passe en utilisant l'instruction « alter user » suivie du nom de l'utilisateur et ensuite « password expire ». Donc, en fait, je peux continuer à exécuter un certain nombre d'instructions SQL dans ma session avec l'utilisateur « roger ». Par exemple, je pourrais faire un « use information-schéma » et puis ensuite faire un « show tables » depuis cette base de données-là. Et donc, j'aurai la liste des tables de cette base de données. Donc, en fait, même si l'administrateur a changé mon mot de passe tant que je suis connecté, eh bien, ça ne pose pas de problème. Par contre, supposons que je me déconnecte et que j'essaye de me reconnecter avec le même mot de passe. Eh bien, j'arriverai à me connecter. Mais si j'essaye à ce moment-là d'exécuter une instruction SQL n'importe laquelle, par exemple un « show databases », eh bien là, j'aurai une erreur qui me dit que mon mot de passe est arrivé à expiration et que si je veux continuer à me servir de MySQL, eh bien, il faut que je change mon mot de passe en utilisant l'instruction qu'on a vue. Par exemple, on va faire un « alter user » donc « roger identified by » et là, je vais mettre un « test roger2 » par exemple, ou « test roger2 » comme ça. Si j'exécute cette instruction, cette fois-ci, je peux exécuter ma requête « show databases », continuer à travailler comme si de rien n'était, et quand je vais me déconnecter, pour me reconnecter, il faudra que j'utilise le nouveau mot de passe. Donc, on va du coup terminer cette session et vider l'écran et puis ensuite, on va s'intéresser à ce qu'on peut faire de plus sur ce compte. En l'occurrence, il est possible de verrouiller le compte d'un utilisateur. Alors, si la session de cet utilisateur est active, il pourra continuer à se servir de sa session. Par contre, c'est à la tentative de connexion ultérieure qu'il y aura un problème. Alors, on va essayer. Par exemple, je peux me connecter avec le compte « roger » en utilisant le nouveau mot de passe « test roger 2 ». Je suis bien connecté au serveur de base de données. Supposons donc que je verrouille le compte « roger » avec mon compte administrateur. La session « roger » est active, donc je peux continuer à travailler. Je peux faire un « show databases », par exemple, et tout se passe bien. Dès l'instant que je vais mettre fin à la session et que je vais essayer de me reconnecter, je vais indiquer mon mot de passe et là, ça va me dire que je ne peux pas me connecter parce que mon compte a été bloqué. Alors, bien sûr, si je peux bloquer un compte, je peux aussi le débloquer. Et donc, c'est ce que je vais faire tout de suite. Si j'essaye, dans ce cas, de me reconnecter avec le bon mot de passe, cette fois-ci, je suis de nouveau capable de me connecter. Bien sûr, on peut aussi supprimer un utilisateur. Je vais mettre fin à cette session, nettoyer l'écran et puis supprimer l'utilisateur « roger ». Si je rafraîchis la requête que j'avais exécutée précédemment, cette ligne-là va disparaître. Je n'ai désormais plus, sur mon serveur de bases de données, d'utilisateur qui s'appelle « roger ». Alors, on a dit que lorsqu'un utilisateur est créé, par défaut, il n'a quasiment aucun droit. On voit qu'il a une visibilité sur la table « information schéma », mais globalement, ça ne lui donne pas grand-chose. Si on veut lui octroyer des droits, il faut ensuite utiliser l'instruction « grant ». On va voir comment faire dans cette partie. Pour ce faire, on va créer trois utilisateurs tests et pour chacun, on aura des privilèges distincts. Je vais créer un « full admin » qui aura des privilèges étendus sur tous les objets de mon serveur, toutes les bases de données. Un utilisateur qui va être un « medoc admin » qui aura tous les droits sur la base de données « medoc » et un utilisateur que je vais appeler « olivier » qui va avoir des droits restreints sur la base de données « medoc ». On va créer ces trois utilisateurs. Ensuite, il faut avoir en tête qu'il va falloir être relativement explicite lorsqu'on va octroyer des droits à un utilisateur. Ce qui n'est pas explicitement autorisé est implicitement interdit. Pour octroyer tous les droits à un utilisateur, on va utiliser l'instruction « grant all » ou « all privileges ». Cependant, il faut aussi que l'on dise sur quoi s'appliquent ces droits. On utilise la partie « on » suivie ensuite d'un code qui indique sur quoi les droits s'appliquent. On a deux parties séparées par un point. La partie de gauche indique la base de données. La partie de droite indique les objets de cette base de données, par exemple des tables. Quand on utilise à gauche et à droite une astérisque, ça veut dire que l'utilisateur a des droits sur l'ensemble des bases de données et pour chacune de ces bases de données, l'ensemble de leurs objets. Donc en clair, il a des droits sur tout. Ici, on a indiqué qu'il avait tous les droits. Donc en fait, l'utilisateur full admin a tous les droits sur tout. Pour préciser à qui ces droits sont octroyés, on utilise tout suivi du nom de l'utilisateur. Donc ici, si j'exécute cette instruction, l'utilisateur full admin aura tous les droits sur tout. On va s'intéresser ensuite à cette ligne-là. Ici, on s'intéresse aux droits de l'utilisateur MedocAdmin qu'on a créé précédemment. Il aura des droits sur la base de données Medoc et en particulier sur tous les objets de cette base. Ces droits, eh bien, c'est tous les droits. Donc il s'agira finalement d'un administrateur qui pourra tout faire, mais uniquement sur la base de données Medoc. Ensuite, on va s'intéresser aux droits concernant l'utilisateur Olivier. Donc on a un certain nombre de lignes ici que je vais passer en revue. D'abord, une série de trois lignes qui concernent toutes les tables de la base de données Medoc. Alors, sur toutes les tables, on va lui octroyer le privilège Select et Insert. Ça veut dire qu'il va pouvoir consulter le contenu des tables, effectuer des insertions dans toutes ces tables sans problème. On va aussi lui octroyer des droits, par exemple, de création de table et de création de vue avec les instructions Grand Create, Create View. Il en existe d'autres, par exemple, Create Temporary Table qui lui permet de créer des tables temporaires. Ici, je ne l'ai pas spécifié. Ça veut dire que cet utilisateur n'aura pas le droit d'en créer. Je vais lui octroyer la possibilité de supprimer des tables. En utilisant l'instruction Drop Table. Ensuite, on va lui octroyer des privilèges particuliers sur certaines tables. Ici, la table Medoc de la base de données Medoc. On va lui octroyer la possibilité de supprimer les enregistrements. Alors, il faut faire très attention parce que la table Medoc est liée à plein d'autres tables par une contrainte de clé étrangère. Et si on se souvient bien, dans la définition de cette contrainte, on a fait en sorte que les suppressions et les modifications soient répercutées en cascade. On peut d'ailleurs s'en souvenir, par exemple, en inspectant le script de création de la table Présentation qui est liée à la table Medoc Si j'exécute cette instruction, je vais voir que j'ai ici une contrainte de type clé étrangère qui précise que la suppression d'un médicament aura des conséquences en cascade sur la table Présentation et de la même manière pour la modification de cette clé primaire. Au moment où je vais autoriser un utilisateur, ici l'utilisateur Olivier, à supprimer les enregistrements dans la table Medoc, ces suppressions vont être propagées à la table Présentation et pas seulement à la table Présentation. Par exemple, ici, je vous ai fait une représentation des liens qui réunissent les différentes tables On voit que, par exemple, la table Medoc est liée à la table Medoc Voix, à la table Présentation, à la table Medoc Animaux, à la table Medoc Substances. Ça veut dire que si je supprime un Medoc, je vais supprimer potentiellement des enregistrements dans cette table, dans cette table, dans celle-ci et dans celle-là. Donc, il faut bien réfléchir soit à la manière dont on crée nos contraintes de clé étrangère, soit aux personnes auxquelles on autorise la suppression d'enregistrements. Je vais autoriser la suppression. Ensuite, je vais pouvoir définir des privilèges non plus au niveau table, mais au niveau colonne d'une table donnée. C'est ce que je fais dans cette ligne-là où je m'intéresse à la table Animaux de la base de données Medoc et j'octroie le droit de modifier les informations contenues dans la colonne NON pour l'utilisateur Olivier. Ça veut dire que s'il essaye de modifier les informations de cette colonne, ça ira. S'il essaye de modifier une autre colonne de cette table, ça lui sera refusé. Donc, on vient de créer nos utilisateurs et on leur attribue un certain nombre de privilèges. Dans un certain nombre de situations, on va se retrouver avec des utilisateurs dont on ne se souviendra plus forcément quels sont exactement les privilèges dont ils bénéficient. À ce moment, ce sera utile d'utiliser un certain nombre d'instructions pour accéder aux détails de leurs privilèges. On a la possibilité, par exemple, d'utiliser SHOW GRANDS FOR suivi du nom d'un utilisateur. C'est probablement l'instruction la plus commode. Si j'exécute cette instruction pour l'utilisateur Olivier, je vois que j'ai quatre lignes de résultat. On va s'intéresser peut-être à celle-ci qui nous indique que sur la base de données Medoc, on a un certain nombre de privilèges dont SELECT, INSERT, CREATE, DROP, les privilèges qu'on a déclarés. Sur la table ANIMAUX de la base de données Medoc, on a la possibilité de mettre à jour la colonne NOM et sur la table Medoc de la base de données Medoc, on a la possibilité de faire des suppressions. On a d'autres manières d'accéder à ces informations-là de manière plus détaillée en accédant également aux privilèges qui ne sont pas accordés à l'utilisateur. On y accède par niveaux successifs, niveaux globales qui concernent les instructions de portée globales, ensuite on a le niveau base de données, puis le niveau table, enfin le niveau colonne, etc. Par exemple, pour connaître les privilèges de niveau global accordé à l'utilisateur, on peut inspecter les colonnes de la table USER de la base de données MySQL. Par exemple, pour l'utilisateur Olivier, on pourrait exécuter cette instruction et si on transpose l'affichage pour une meilleure lecture, on constate que pour la plupart des privilèges, l'utilisateur ne dispose d'aucun privilège parce qu'on ne lui a pas attribué de privilège de portée globale, à la différence de l'utilisateur full admin qui lui bénéficie de la plupart des privilèges de niveau global. On a la possibilité d'explorer les privilèges de niveau base de données en s'intéressant à la base de données à la table DB de la base de données MySQL qui se présente de la même manière, à la différence près que la base de données précisée ici, on constate que l'utilisateur Olivier a la possibilité de faire des requêtes SELECT, des requêtes INSERT, mais pas des requêtes UPDATE sur toutes les tables de la base de données MEDOC. Pour avoir des informations détaillées de niveau table, il faut aller inspecter la table qui s'appelle Tables PRIV de la base de données MySQL par exemple, si j'explore cette table pour l'utilisateur Olivier, je vois que j'ai un certain nombre d'enregistrements en particulier, je sais que cet utilisateur peut apporter des modifications à la table ANIMAUX et qu'il peut supprimer des enregistrements de la table Madoc. Je n'ai pas plus de précision, par contre si j'exécute cette instruction là qui s'intéresse à la table columns prive, et bien là je sais que sur la table animaux la colonne non est concernée par le privilège update, et uniquement cette colonne là. Alors on peut peut-être profiter de l'occasion pour tester les privilèges qui sont accordés à l'utilisateur Olivier, donc pour ce faire on va se connecter à notre base de données en utilisant l'invite de commande, avec les noms d'utilisateur et mot de passe qu'on a défini, donc Olivier-P, et donc c'est test Olivier le mot de passe, donc je suis connecté à mon serveur, je peux constater que je peux accéder à un certain nombre de bases de données, donc celle qui est affichée par défaut, et puis la base de données donc je vais me connecter précisément à cette base de données, je peux consulter les tables de cette base de données, et je vais m'intéresser peut-être à la table animaux, m'assurer que je peux faire un select all from animals, limite 10 par exemple, et j'ai effectivement les dix premiers animaux, donc je peux effectivement faire des requêtes select, par contre je n'ai pas le privilège delete sur cette table, donc si j'essayais de faire une requête delete sur la table animaux, et bien ça me serait refusé, alors testons le, delete from animals, where par exemple id égale 1, j'ai effectivement ce message qui me dit vous n'avez pas le droit d'exécuter deux commandes delete sur la table animaux, je ne peux pas non plus par exemple de faire de mise à jour sur la colonne parents, je sais que je n'ai que la colonne non que je peux mettre à jour, donc si j'essaye de faire un update animaux, set parents égale 1, where id égale 1 par exemple, et bien ça va encore une fois me dire que je ne peux pas utiliser cette commande sur la table animaux, et en particulier sur la colonne parents, donc mes privilèges fonctionnent correctement, je ne vais pas tester réellement la mise à jour sur la colonne non mais vous pouvez me croire ça fonctionne très bien, donc je vais quitter cette session et puis finalement nettoyer mon affichage, alors je peux bien sûr pour finir supprimer des privilèges qui ont été octroyés à un utilisateur, effectivement je peux en supprimer certains, je peux tous les supprimer, ça va dans les deux sens bien sûr, donc par cette instruction revoke, et bien je peux désigner les privilèges que je vais retirer à un utilisateur, donc dans le cas présent, et bien je supprime tous les privilèges qui ont été octroyés à l'utilisateur full admin sur l'ensemble des bases de données gérées par mon serveur de bases de données, cela n'a pas comme conséquence la suppression de l'utilisateur en lui même, il existe toujours, il a les privilèges que je viens de supprimer en moins, mais par contre il existe toujours, donc je peux par exemple m'assurer que dans ma base de données, alors je vais modifier l'affichage pour que ce soit plus lisible, voilà dans ma base de données j'ai toujours les utilisateurs que j'ai rajoutés, et donc bien sûr ces utilisateurs je peux ensuite les supprimer et m'assurer qu'ils ont bien été supprimés, donc comme vous pouvez le constater il y a beaucoup de choses à savoir sur la gestion des utilisateurs et de leurs privilèges, et encore je n'ai fait que vraiment effleurer la surface du sujet, il y a beaucoup d'autres choses à savoir, donc si cela vous intéresse je vous ai mis ici un lien vers la documentation officielle, lien qui vous permettra d'accéder à une documentation détaillée sur le sujet.

Programme détaillé

Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Unions 06:39
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Nos dernières formations Code & Data
  • Nouveau
    Maîtriser FlutterFlow - De l'Idée à l'Application
    Découvrir
    Cette formation en FlutterFlow est l'outil idéal pour tout développeur souhaitant créer des applications mobiles robustes et interactives sans coder de manière complexe. Grâce à des modules complets et structurés, vous apprendrez à utiliser FlutterFlow et Firebase, à sécuriser vos données, à concevoir des interfaces utilisateur élégantes et à intégrer des API telles qu'OpenIA. Rejoignez-nous pour transformer vos idées en applications innovantes et performantes.
    4h08 57 leçons
  • Nouveau
    Webflow - Créer la landing Page d'OpenAI
    Découvrir
    À l'issue de cette formation, les participants seront capables de créer de manière autonome une landing page sophistiquée, similaire à celle d'OpenAI, en utilisant les fonctionnalités avancées de Webflow pour le design responsive et les interactions.
    3h48 19 leçons
  • Apprendre Svelte 3 et SvelteKit 1.0
    Découvrir
    Créez des applications web modernes et ultra-rapides avec notre formation "Apprendre Svelte 3 et SvelteKit 1.0". Rejoignez-nous et devenez un expert du développement JavaScript ! 🚀 #Svelte #SvelteKit #DéveloppementWeb
    7h42 77 leçons
  • Apprendre Vue JS 3
    Découvrir
    Apprenez à créer des applications web modernes avec notre formation "Apprendre Vue JS 3". Rejoignez-nous et maîtrisez ce puissant framework JavaScript ! 🚀 #VueJS #FormationWeb #Développement
    11h47 91 leçons
  • Gratuit
    Apprendre ChatGPT
    Découvrir
    Ce cours vise à fournir une compréhension approfondie de l'intelligence artificielle, en se concentrant sur l'utilisation pratique de ChatGPT et DALL-E. Les participants découvriront comment l'IA peut transformer des domaines variés tels que le marketing, le développement web, et le design graphique. Le contenu couvre les bases de l'IA, l'art de créer des prompts efficaces, l'utilisation de plugins avancés, et le codage assisté par IA. Des projets pratiques permettront d'appliquer ces connaissances dans des scénarios réels. Destiné aux professionnels de la technologie, aux marketeurs, aux développeurs, et à toute personne intéressée par l'IA, ce cours est une opportunité d'acquérir des compétences innovantes et applicables dans divers contextes professionnels et créatifs. Les prérequis incluent une compréhension basique de l'informatique et un intérêt pour l'IA. Le cours promet une aventure d'apprentissage enrichissante, ouvrant de nouvelles perspectives dans l'utilisation de l'intelligence artificielle.
    3h12 30 leçons

éditeur de vidéos pédagogiques

Des supports pédagogiques en vidéo, produits avec les meilleurs experts. Dans nos studios à Paris, Lyon ou Montpellier. Vous souhaitez travailler avec nous ?
image-micro