IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Impossible d'affecter un role avec le user root


Sujet :

Administration MySQL

  1. #1
    Membre habitué Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 367
    Points : 191
    Points
    191
    Par défaut Impossible d'affecter un role avec le user root
    Bonjour,

    Mon user root ne peut plus définir de rôle sur des users, et je ne comprends pas pourquoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    MariaDB [(none)]> SHOW GRANTS FOR 'root'@'localhost'
        -> ;
    +----------------------------------------------------------------------------------------------------------------------------------------+
    | Grants for root@localhost                                                                                                              |
    +----------------------------------------------------------------------------------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*<hash>' WITH GRANT OPTION |
    | GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION                                                                          |
    +----------------------------------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
     
    MariaDB [(none)]> GRANT developpeurs TO <mon user>;
    ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    MariaDB [(none)]>
    Je ne comprends pas pourquoi ça ne fonctionne pas, j'ai déjà donné ce profil à une 20aine de users différents sur la même base de données...

    Si quelqu'un a une piste... (j'ai déjà testé le mysql_update)

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 465
    Points : 19 454
    Points
    19 454
    Par défaut
    Salut à tous.

    Je ne voie aucune difficulté dans le fait de créer un rôle sous MariaDB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    --------------
    SHOW VARIABLES LIKE 'version'
    --------------
     
    +---------------+-----------------+
    | Variable_name | Value           |
    +---------------+-----------------+
    | version       | 10.1.20-MariaDB |
    +---------------+-----------------+
    --------------
    SHOW GRANTS FOR 'root'@'localhost'
    --------------
     
    +----------------------------------------------------------------------------------------------------------------------------------------+
    | Grants for root@localhost                                                                                                              |
    +----------------------------------------------------------------------------------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION |
    | GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION                                                                          |
    +----------------------------------------------------------------------------------------------------------------------------------------+
    --------------
    DROP   ROLE IF EXISTS writer
    --------------
     
    --------------
    CREATE ROLE           writer
    --------------
     
    --------------
    SELECT CURRENT_ROLE
    --------------
     
    +--------------+
    | CURRENT_ROLE |
    +--------------+
    | NULL         |
    +--------------+
    --------------
    SET ROLE writer
    --------------
     
    --------------
    SELECT CURRENT_ROLE
    --------------
     
    +--------------+
    | CURRENT_ROLE |
    +--------------+
    | writer       |
    +--------------+
    --------------
    SET ROLE none
    --------------
     
    --------------
    SELECT CURRENT_ROLE
    --------------
     
    +--------------+
    | CURRENT_ROLE |
    +--------------+
    | NULL         |
    +--------------+
    --------------
    DROP   ROLE writer
    --------------
     
    Appuyez sur une touche pour continuer...
    @+

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Vous êtes dans quelle base pour lancer vote requête ?


  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 465
    Points : 19 454
    Points
    19 454
    Par défaut
    Salut fadace.

    Il n'est pas nécessaire d'être en ligne sur une base de données (je parle de faire un "use") pour créer un rôle dans MariaDB.
    Mais inversement, mioux doit utiliser un compte ayant les privilèges pour le faire, sinon cela ne va pas fonctionner.
    Dans mon exemple, je suis sous le compte "Root".

    Je me pose aussi une question concernant la version MariaDB utilisé.
    Les rôles ont été introduit dans MariaDB à partir de la version 10.0.5.
    Pour les tests, je suis dans MariaDB, la version stable 10.1.20.
    --> https://mariadb.com/kb/en/mariadb/roles-overview/

    De surcroît, il faut s'assurer que c'est bien le compte "root" qui est utilisé et non un autre compte.

    Voici un exemple un peu plus complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    --------------
    SHOW VARIABLES LIKE 'version'
    --------------
     
    +---------------+-----------------+
    | Variable_name | Value           |
    +---------------+-----------------+
    | version       | 10.1.20-MariaDB |
    +---------------+-----------------+
    --------------
    SHOW GRANTS FOR 'alpha'@'%'
    --------------
     
    ERROR 1141 (42000) at line 7: Un tel droit n'est pas défini pour l'utilisateur 'alpha' sur l'hôte '%'
    --------------
    DROP   USER IF EXISTS 'alpha'@'%'
    --------------
     
    --------------
    CREATE USER           'alpha'@'%'   IDENTIFIED BY 'alpha'
    --------------
     
    --------------
    SET    PASSWORD FOR   'alpha'@'%' = PASSWORD('alpha')
    --------------
     
    --------------
    SHOW GRANTS FOR 'alpha'@'%'
    --------------
     
    +------------------------------------------------------------------------------------------------------+
    | Grants for alpha@%                                                                                   |
    +------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'alpha'@'%' IDENTIFIED BY PASSWORD '*514699B1AEE5B468012A8156585A02A6E843B277' |
    +------------------------------------------------------------------------------------------------------+
    --------------
    SHOW GRANTS FOR writer
    --------------
     
    ERROR 1141 (42000) at line 19: Un tel droit n'est pas défini pour l'utilisateur 'writer' sur l'hôte '%'
    --------------
    DROP   ROLE IF EXISTS writer
    --------------
     
    --------------
    CREATE ROLE           writer
    --------------
     
    --------------
    GRANT SELECT, INSERT, UPDATE, DELETE ON base.* TO writer
    --------------
     
    --------------
    SHOW GRANTS FOR writer
    --------------
     
    +--------------------------------------------------------------+
    | Grants for writer                                            |
    +--------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'writer'                               |
    | GRANT SELECT, INSERT, UPDATE, DELETE ON `base`.* TO 'writer' |
    +--------------------------------------------------------------+
    --------------
    SHOW GRANTS FOR 'alpha'@'%'
    --------------
     
    +------------------------------------------------------------------------------------------------------+
    | Grants for alpha@%                                                                                   |
    +------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'alpha'@'%' IDENTIFIED BY PASSWORD '*514699B1AEE5B468012A8156585A02A6E843B277' |
    +------------------------------------------------------------------------------------------------------+
    --------------
    grant writer to 'alpha'@'%'
    --------------
     
    --------------
    SHOW GRANTS FOR 'alpha'@'%'
    --------------
     
    +------------------------------------------------------------------------------------------------------+
    | Grants for alpha@%                                                                                   |
    +------------------------------------------------------------------------------------------------------+
    | GRANT writer TO 'alpha'@'%'                                                                          |
    | GRANT USAGE ON *.* TO 'alpha'@'%' IDENTIFIED BY PASSWORD '*514699B1AEE5B468012A8156585A02A6E843B277' |
    +------------------------------------------------------------------------------------------------------+
    --------------
    DROP ROLE writer
    --------------
     
    --------------
    DROP USER 'alpha'@'%'
    --------------
     
    Appuyez sur une touche pour continuer...
    @+

  5. #5
    Membre habitué Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 367
    Points : 191
    Points
    191
    Par défaut
    O_O Il y a eu des réponses, et je n'ai eu aucun mail de developpez.net :'(

    Pour info, j'ai fini par trouver un moyen de contournement. Le user root ne me permet pas d'affecter un role, parce que l'une des configurations du compte root n'a pas de mot de passe (selon le message d'erreur).

    J'ai défini les droits depuis un compte qui avait des droits d'admins complets et ce compte là peut donner des droits sur des profils.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT ALL ON *.* TO 'un autre admin'@'localhost' WITH GRANT OPTION
    J'ai essayé de redéfinir le mot de passe via un update
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE mysql.Users SET PASSWORD = 'hash*' WHERE User = 'root';
    FLUSH PRIVILEGES;
    mais ça n'a pas fonctionné non plus (alors que j'ai bien le mot de passe défini sur l'ensemble des confs du compte, testé et approuvé )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MariaDB [(none)]> show variables like 'version';
    +---------------+--------------------------+
    | Variable_name | Value                    |
    +---------------+--------------------------+
    | version       | 10.1.20-MariaDB-1~jessie |
    +---------------+--------------------------+
    1 row in set (0.00 sec)
    Le sujet est donc partiellement résolu, vu que je peux définir les droits, mais je ne comprends pas pourquoi, je ne peux pas depuis le compte root

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 465
    Points : 19 454
    Points
    19 454
    Par défaut
    Salut Mioux.

    Citation Envoyé par Mioux
    Le user root ne me permet pas d'affecter un role, parce que l'une des configurations du compte root n'a pas de mot de passe (selon le message d'erreur).
    Je ne comprends pas trop ce que vous dites.

    Pour manipuler les comptes users, votre compte, entre autre "root", doit avoir le privilège "Create_user_priv" à "Yes".
    --> https://dev.mysql.com/doc/refman/8.0...eate-role.html

    Citation Envoyé par Mioux
    J'ai défini les droits depuis un compte qui avait des droits d'admins complets et ce compte là peut donner des droits sur des profils.
    Ce n'est pas une bonne idée de multiplier les comptes administrateurs dans MySql.
    Normalement, il doit y avoir un seul compte administrateur, de nom "root", ayant tous les privilèges, et à ne pas mettre entre toutes les mains.

    Citation Envoyé par Mioux
    J'ai essayé de redéfinir le mot de passe via un update
    Non, ce n'est pas la bonne méthode. Il existe pour cela une requête qui permet de modifier votre mot de passe.
    Pour créer un compte, et modifier son mot de passe, voici comment procéder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    --------------
    select * from user
    --------------
     
    +-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+------------------+---------+--------------+--------------------+
    | Host      | User  | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string | password_expired | is_role | default_role | max_statement_time |
    +-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+------------------+---------+--------------+--------------------+
    | localhost | root  | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 |        |                       | N                | N       |              | 0.000000           |
    | 127.0.0.1 | root  | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 |        |                       | N                | N       |              | 0.000000           |
    +-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+------------------+---------+--------------+--------------------+
    --------------
    DROP   USER 'admin'@'%'
    --------------
     
    ERROR 1396 (HY000) at line 5: Operation DROP USER failed for 'admin'@'%'
    --------------
    CREATE USER 'admin'@'%'  IDENTIFIED BY 'admin'
    --------------
     
    --------------
    GRANT  ALL PRIVILEGES ON *.* TO 'admin'@'%'
    --------------
     
    --------------
    SET    PASSWORD FOR 'admin'@'%' = PASSWORD('admin')
    --------------
     
    --------------
    select * from user
    --------------
     
    +-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+------------------+---------+--------------+--------------------+
    | Host      | User  | Password                                  | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | Event_priv | Trigger_priv | Create_tablespace_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections | plugin | authentication_string | password_expired | is_role | default_role | max_statement_time |
    +-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+------------------+---------+--------------+--------------------+
    | localhost | root  | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 |        |                       | N                | N       |              | 0.000000           |
    | 127.0.0.1 | root  | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 |        |                       | N                | N       |              | 0.000000           |
    | %         | admin | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | N          | Y               | Y          | Y          | Y            | Y          | Y                     | Y                | Y            | Y               | Y                | Y                | Y              | Y                   | Y                  | Y                | Y          | Y            | Y                      |          |            |             |              |             0 |           0 |               0 |                    0 |        |                       | N                | N       |              | 0.000000           |
    +-----------+-------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+------------+--------------+------------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+--------+-----------------------+------------------+---------+--------------+--------------------+
     
    Appuyez sur une touche pour continuer...
    Dans cet exemple, le compte admin a tous les privilèges et a comme mot de passe "admin".

    Vous remarquez qu'il existe une colonne "is_role" pour faire la distinction entre un compte et un role.

    Citation Envoyé par Mioux
    ... mais je ne comprends pas pourquoi, je ne peux pas depuis le compte root
    Peut-être que le compte n'a pas ce privilège par défaut.

    @+

Discussions similaires

  1. Tomcat avec un SSO et role dans tomcat-users.xml
    Par fred33600 dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 18/05/2015, 19h09
  2. Réponses: 5
    Dernier message: 28/10/2010, 12h09
  3. Impossible d'envoyer un formulaire avec javascript
    Par Mimi Bulles dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 20h37
  4. Impossible d'affecter un événement
    Par Costello dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/08/2005, 16h18
  5. Réponses: 2
    Dernier message: 21/07/2005, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo