旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

[MySQL] 先頭が “test_” データベース名には権限を解放

2013年1月9日

Ubuntu-12.10 の aptitude で MySQL-5.5 を入れました。
それを使って、Django のテストを行っていたら・・・おかしい!

MySQLユーザの foouser には、foodb のデータベースにしか権限を付けていないのに
test_foodb を勝手に作ってテストを行っている・・・!?
なんだこりゃ?

“test_”のDB名は特殊扱い

原因は以下のように、”test_”プレフィックスのあるデータベース名に対しては
MySQL 側がデフォルトで権限を全開にしていました

mysql> select * from mysql.db;
(..他の行は略..)
*************************** 2. row ***************************
                 Host: %
                   Db: test\_%
                 User: 
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
           Grant_priv: N
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: N
         Execute_priv: N
           Event_priv: Y
         Trigger_priv: Y