← Back to team overview

maria-discuss team mailing list archive

R: handling of mixed case roles

 

Users are case-sensitive, so I expect the same from roles.
If something doesn't work with mixed-case roles, it is probably a bug.

Federico


--------------------------------------------
Lun 5/9/16, Robin Peiremans <robin.peiremans@xxxxxx> ha scritto:

 Oggetto: [Maria-discuss] handling of mixed case roles
 A: "maria-discuss@xxxxxxxxxxxxxxxxxxx" <maria-discuss@xxxxxxxxxxxxxxxxxxx>
 Data: Lunedì 5 settembre 2016, 10:27
 
 
 
  
  
 
 
 
 
 Hi 
 
   
 I've created a role
 with both upper and lowercase name, resulting in some weird
 behavior (output and test case below). 
    
 The first thing I noticed
 is that you can create roles with the same name but
 different case (test_role and test_ROLE in below example),
 but you can't grant both to the same user as that
 results in an error 1961 when granting the second
  role. Imo this indicates that not all the roles code is
 case-sensitive. 
    
 The second weird thing is
 that when you get the error 1961 in above scenario, the
 first role (that was granted successfully) is gone from the
 show grants output. It is not revoked (the user can still
 use it), it just isn't shown anymore
  until I flush privileges. 
    
 Can this be considered a
 bug, or am I missing something here? 
 MariaDB version:
 10.1.13-MariaDB 
 OS: Red Hat 7.2 
    
 Kind regards 
 Robin 
    
    
    
 Output and test case: 
 MariaDB [mysql]> create
 role test_ROLE; 
 Query OK, 0 rows affected
 (0.00 sec) 
    
 MariaDB [mysql]> create
 role test_role; 
 Query OK, 0 rows affected
 (0.00 sec) 
    
 MariaDB [mysql]> grant
 select on mysql.* to test_role; 
 Query OK, 0 rows affected
 (0.00 sec) 
    
 MariaDB [mysql]> select
 user, host from user where is_role='y' and user like
 'test%'; 
 +-----------+------+
 
 |
 user      | host | 
 +-----------+------+
 
 | test_ROLE
 |      | 
 | test_role
 |      | 
 +-----------+------+
 
 2 rows in set (0.00
 sec) 
    
 MariaDB [mysql]> grant
 test_role to testuser; 
 Query OK, 0 rows affected
 (0.00 sec) 
    
 MariaDB [mysql]> show
 grants for testuser; 
 +------------------------------------------------------------------------+
 
 | Grants for
 testuser@%                              
                     |
 
 +------------------------------------------------------------------------+
 
 | GRANT test_role TO
 'testuser'@'%'                                      
 | 
 | GRANT USAGE ON *.* TO
 'testuser'@'%' IDENTIFIED VIA pam USING
 'mariadb' | 
 +------------------------------------------------------------------------+
 
 2 rows in set (0.00
 sec) 
    
 MariaDB [mysql]> grant
 test_ROLE to testuser; 
 ERROR 1961 (HY000): Cannot
 grant role 'test_ROLE' to: 'testuser'. 
 MariaDB [mysql]> show
 grants for testuser; 
 +------------------------------------------------------------------------+
 
 | Grants for
 testuser@%                                                  
 | 
 +------------------------------------------------------------------------+
 
 | GRANT USAGE ON *.* TO
 'testuser'@'%' IDENTIFIED VIA pam USING
 'mariadb' | 
 +------------------------------------------------------------------------+
 
 1 row in set (0.00
 sec) 
    
 MariaDB [mysql]> select
 * from roles_mapping where user='testuser'; 
 +-----------+---------+-----------+--------------+
 
 |
 Host      | User   
 | Role      | Admin_option | 
 +-----------+---------+-----------+--------------+
 
 |
 %         | testuser
 | test_role |
 N           
 | 
 +-----------+---------+-----------+--------------+
 
 3 rows in set (0.00
 sec) 
    
 MariaDB [mysql]> flush
 privileges; 
 Query OK, 0 rows affected
 (0.00 sec) 
    
 MariaDB [mysql]> show
 grants for testuser; 
 +------------------------------------------------------------------------+
 
 | Grants for
 testuser@%                                                  
 | 
 +------------------------------------------------------------------------+
 
 | GRANT test_role TO
 'testuser'@'%'    
                                   |
 
 | GRANT USAGE ON *.* TO
 'testuser'@'%' IDENTIFIED VIA pam USING
 'mariadb' | 
 +------------------------------------------------------------------------+
 
 2 rows in set (0.00
 sec) 
    
 
 
 
 Disclaimer
 
 
 -----Segue allegato-----
 
 _______________________________________________
 Mailing list: https://launchpad.net/~maria-discuss
 Post to     : maria-discuss@xxxxxxxxxxxxxxxxxxx
 Unsubscribe : https://launchpad.net/~maria-discuss
 More help   : https://help.launchpad.net/ListHelp