| Prochaine révision | Révision précédente |
| sqlcmd [2020/08/04 09:15] – créée nekan | sqlcmd [2021/05/28 12:29] (Version actuelle) – [Interrogation] nekan |
|---|
| ~~CLOSETOC~~ | |
| ====== Commandes SQL ====== | ====== Commandes SQL ====== |
| | <label type="info">Création</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/08/04 10:44// |
| | |
| | <label type="warning">Modification</label> --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2021/05/25 15:57// |
| |
| ===== Généralités ===== | ===== Généralités ===== |
| |''SET'' |Définie une variable et sa valeur. |<sxh sql>SET NAMES 'utf8';</sxh>| | |''SET'' |Définie une variable et sa valeur. |<sxh sql>SET NAMES 'utf8';</sxh>| |
| |
| ===== Création d'un utilisateur ===== | ===== Création ===== |
| | |
| | ==== Base ==== |
| | |
| | Pour la création d'une nouvelle base de données, on peut utiliser la commande ci-dessous (en remplaçant ''database_name'' par le nom choisi pour la nouvelle base) : |
| | <sxh sql>CREATE DATABASE database_name;</sxh> |
| | |
| | ==== Utilisateur ==== |
| |
| Pour créer un utilisateur, on commence par définir le nom de l'utilisateur (''user'' par exemple), le point de connexion (''localhost'' pour l'exemple) et son mot de passe (''pass'' par exemple). Ce qui nous donne : | Pour créer un utilisateur, on commence par définir le nom de l'utilisateur (''user'' par exemple), le point de connexion (''localhost'' pour l'exemple) et son mot de passe (''pass'' par exemple). Ce qui nous donne : |
| |
| Ensuite, il faut lui donner des droits (''ALL PRIVILEGES'' dans l'exemple donne tous les droits) sur une base (on choisir ''db'') et sur une table de cette base (''tbl'' dans l'exemple). Ce qui donne : | Ensuite, il faut lui donner des droits (''ALL PRIVILEGES'' dans l'exemple donne tous les droits) sur une base (on choisir ''db'') et sur une table de cette base (''tbl'' dans l'exemple). Ce qui donne : |
| <sxh sql>GRANT ALL PRIVILEGES ON db.tbl TO 'user'@'localhost';</sxh> | <sxh sql>GRANT ALL PRIVILEGES ON db.tbl TO 'user'@'localhost'; |
| | FLUSH PRIVILEGES;</sxh> |
| | |
| | <callout type="info" title="Wildcard" icon="true">''localhost'' ne doit être utilisé que si le client se connecte sur le serveur, ce qui est une mauvaise idée par défaut (usage excéssif de la mémoire, problème de sécurité, etc...). Il vaut mieux utiliser l'adresse IP à partir de laquelle le client se connecte. Le caractère ''%'' sert à indiquer l'accès depuis n'importe quelle adresse. |
| | |
| | Pour les bases et les tables, le caractère ''*'' sert à indiquer toutes ces dernières.</callout> |
| | |
| | ===== Interrogation ===== |
| | |
| | ==== Droit d'un utilisateur ==== |
| | |
| | <sxh sql>SHOW GRANTS FOR 'user'@'%';</sxh> |
| | |
| | ==== Liste des bases ==== |
| | |
| | <sxh sql>SHOW DATABASES;</sxh> |
| | |
| | ==== Liste des utilisateurs ==== |
| | |
| | <sxh sql>SELECT user FROM mysql.user;</sxh> |
| | |
| | ===== Modification ===== |
| | |
| | ==== Mot de passe d'un utilisateur ==== |
| |
| A noter qu'on peut utiliser le wildcard ''*'' à la place du nom de la base et/ou de la table afin de signifier toutes les bases/tables. | <label type="primary">mysql ≥ 5.7.6 et MariaDB ≥ 10.1.21</label> |
| | <sxh sql>ALTER USER 'user'@'localhost' IDENTIFIED BY 'new_password'; |
| | FLUSH PRIVILEGES;</sxh> |
| |
| | <label type="primary">mysql ≤ 5.7.5 et MariaDB ≤ 10.1.20</label> |
| | <sxh sql>SET PASSWORD FOR 'user'@'localhost' = PASSWORD('new_password'); |
| | FLUSH PRIVILEGES;</sxh> |
| |
| --- //[[nekan@shyrkasystem.com|Nicolas THOREZ]] 2020/08/04 10:44// | |
| ~~DISCUSSION~~ | ~~DISCUSSION~~ |
| |