mysql:14598
From: <kozu@xxxxxxxxxx>
Date: Sat, 7 Jun 2008 00:42:36 +0900 (JST)
Subject: [mysql 14598] Re: 権限について
中富さん こんばんは、kozu です。 中富さんから頂いたアドバイスを踏まえ、 情報提供元である身内の情報を詳細に確認致しましたら、 新たな事が判明致しました。 (私自身が現象を正しく理解していませんでした^^;) 私の検証環境 CentOS5.1 に yum で mysql5.0 を入れて、 色々試した結果、以下の SQL を発行すると、 testuser は test_db2 を作成する事は出来ないが、 `test?db1` であれば作成できるというバグのような現象が起きています。 ① testuser を作成 insert into mysql.user (host,user,password) values ('%','testuser',PASSWORD('$password')); ② 権限を付与 insert into mysql.db (host,db,user,Select_priv,Insert_priv,Update_priv, Delete_priv,Create_priv,Drop_priv,References_priv,Index_priv, Alter_priv,Create_tmp_table_priv,Lock_tables_priv) values ('%','test_db1','testuser','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); ③ testuser でログイン ④ test_db2 は作成する事が出来ないが、test_db1 であれば作成が出来てしまう。 なお、create database `test?db1` のように、 バッククオート付きでクエリーを発行するのがミソのようです。 ちなみに、GRANTを使った場合でも同様です。 私は以下の手順で現象を確認しました。 ① データベースを作成 create database `test_db1`; ② GRANT GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON test_db1.* TO testuser@localhost IDENTIFIED BY 'testtest'; ③ testuser でログイン ④ test_db2 は作成する事が出来ないが、test_db1 であれば作成が出来てしまう。
14594 2008-06-06 22:06 [<kozu@xxxxxxxxxx> ] 権限について 14595 2008-06-06 22:35 ┗[Katsutoshi Nakatomi ] 14596 2008-06-06 23:24 ┗[<kozu@xxxxxxxxxx> ] 14597 2008-06-06 23:47 ┗[Katsutoshi Nakatomi ] -> 14598 2008-06-07 00:42 ┗[<kozu@xxxxxxxxxx> ] 14599 2008-06-07 00:47 ┗[<kozu@xxxxxxxxxx> ] 14600 2008-06-07 02:42 ┗[<kozu@xxxxxxxxxx> ]