Bug #14406 GRANTS ON objects with non-ascii names borked after FLUSH PRIVILEGES
Submitted: 27 Oct 2005 18:48 Modified: 9 Dec 2005 19:06
Reporter: Alexander Kirillov Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:4.1.16-BK, 4.1.14 OS:Linux (Linux)
Assigned to: Alexander Barkov CPU Architecture:Any

[27 Oct 2005 18:48] Alexander Kirillov
Description:
GRANTS ON objects with non-ascii names don't work as the names are borked
when writing to system tables. The problem doesn't seem to be related to
default server/client encoding. The problem exists when granting privileges
on databases, tables and columns with non-ascii names.

How to repeat:
# mysql -p
mysql> create database `koi8r name`;
mysql> grant select on `koi8r name`.* to root@localhost;
mysql> show grants for root@localhost;
So far so good..
mysql> flush privileges;
mysql> show grants for root@localhost;
Here it is. Now you can see those weird names.
[4 Nov 2005 14:08] Valeriy Kravchuk
Thank you for a bug report. Verified on today's -BK build (with utf8) just as described:

[openxs@Fedora 4.1]$ bin/mysql --default-character-set=utf8 -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.16
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> source 14406.sql
Query OK, 1 row affected (0,10 sec)
 
Query OK, 0 rows affected (0,12 sec)
 
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT SELECT ON `русское_имя`.* TO 'root'@'localhost'               |
+---------------------------------------------------------------------+
2 rows in set (0,08 sec)
 
Query OK, 0 rows affected (0,01 sec)
 
+--------------------------------------------------------------------------------------+
| Grants for root@localhost        |
+--------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION        |
| GRANT SELECT ON `русское_имя`.* TO 'root'@'localhost'        |
+--------------------------------------------------------------------------------------+
2 rows in set (0,15 sec)
 
mysql> show variables like '%char%';
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | utf8                                       |
| character_set_connection | utf8                                       |
| character_set_database   | utf8                                       |
| character_set_results    | utf8                                       |
| character_set_server     | utf8                                       |
| character_set_system     | utf8                                       |
| character_sets_dir       | /home/openxs/dbs/4.1/share/mysql/charsets/ |
+--------------------------+--------------------------------------------+
7 rows in set (0,00 sec)

[openxs@Fedora 4.1]$ cat 14406.sql
create database `русское_имя`;
grant select on `русское_имя`.* to root@localhost;
show grants for root@localhost;
flush privileges;
show grants for root@localhost;
[14 Nov 2005 12:45] Alexander Barkov
A patch has been commited:

http://lists.mysql.com/internals/32235
[14 Nov 2005 21:41] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/32235
[28 Nov 2005 14:40] Alexander Barkov
Reviewed by Ingo.
Pushed into 4.1.16.
[9 Dec 2005 19:06] Paul Dubois
Noted in 4.1.16 changelog.