GRANT |
Privilège |
---|---|
MySQL |
Syntaxe
GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] { * | *.* | db_name.* | db_name.tbl_name | tbl_name | db_name.routine_name } TO user [IDENTIFIED BY [PASSWORD] 'password'] [, user [IDENTIFIED BY [PASSWORD] 'password']] ... [REQUIRE NONE | [{SSL| X509}] [CIPHER 'cipher' [AND]] [ISSUER 'issuer' [AND]] [SUBJECT 'subject']] [WITH with_option [with_option] ...] object_type = TABLE | FUNCTION | PROCEDURE with_option = GRANT OPTION | MAX_QUERIES_PER_HOUR count | MAX_UPDATES_PER_HOUR count | MAX_CONNECTIONS_PER_HOUR count | MAX_USER_CONNECTIONS count |
Description
Cette instruction permet de définir les privilèges administrateur de chaque utilisateur de la base de données de MySQL.
Remarques
- Dans de nombreuses situations, le changement apporté par l'instruction GRANT ne sont pas effectifs immédiatement. Pour éviter d'être obligé de redémarrer le serveur, il est souvent préférable d'utiliser les instructions suivantes :
- Depuis la version MySQL 5, le serveur MySQL bloque les connexions vers les réseaux extérieurs par défaut. Pour qu'une communication soit possible avant l'état d'authentification, il faut d'abord que le «bind-address» situé dans le fichier «my.cfg» ou «my.ini» soit désactiver. Ainsi, vous devriez remplacer la ligne suivante :
- L'instruction GRANT permet aux administrateurs système d'accorder des privilèges et des rôles, pouvant être accordés aux comptes d'utilisateurs et aux rôles. Ces restrictions de syntaxe s'appliquent selon les points suivants : GRANT ne peut pas mélanger l'octroi de privilèges et de rôles dans la même instruction, une instruction GRANT donnée doit accorder des privilèges ou des rôles. La clause ON distingue si l'instruction accorde des privilèges ou des rôles : avec ON, l'instruction accorde des privilèges, sans ON, l'instruction accorde des rôles, il est permis d'attribuer à la fois des privilèges et des rôles à un compte, mais vous devez utiliser des instructions GRANT distinctes, chacune avec une syntaxe appropriée à ce qui doit être accordé.
- Pour accorder un privilège avec GRANT, vous devez disposer du privilège GRANT OPTION et vous devez disposer des privilèges que vous accordez. (Alternativement, si vous disposez du privilège UPDATE pour les tables d'octroi dans le schéma système mysql, vous pouvez accorder à n'importe quel compte n'importe quel privilège.) Lorsque la variable système read_only est activée, GRANT requiert en plus le privilège CONNECTION_ADMIN (ou le privilège SUPER obsolète).
- L'instruction GRANT réussit pour tous les utilisateurs et rôles nommés ou est annulé et n'a aucun effet si une erreur se produit. L'instruction est écrite dans le journal de bord binaire uniquement si elle réussit pour tous les utilisateurs et rôles nommés.
- L'instruction REVOKE est liée à GRANT et permet aux administrateurs de supprimer les privilèges du compte.
- Normalement, un administrateur de base de données utilise d'abord CREATE USER pour créer un compte et définir ses caractéristiques non privilégiées telles que son mot de passe, s'il utilise des connexions sécurisées et des limites d'accès aux ressources du serveur, puis utilise GRANT pour définir ses privilèges. Un ALTER USER peut être utilisé pour modifier les caractéristiques non privilégiées des comptes existants.
flush privileges; |
bind-address = 127.0.0.1 |
par celle-ci :
#bind-address = 127.0.0.1 |
Exemple
L'exemple suivant permet de donner l'accès «root» au réseau local :
Voir également
Article - Les géants de l'informatique - Oracle
Références
MySQL - Référence, Edition Micro Application, Nicolas Rivereau, Antoine Pichot, 2002, ISBN: 2-7429-2560-0, page 906.
MySQL: The definitive guide to using, programming, and administering MySQL 4 databases - Second Edition, Paul Dubois, 2003, ISBN: 0-7357-1212-3, page 869
Dernière mise à jour : Lundi, le 14 septembre 2015