• ベストアンサー
  • 困ってます

権限付与(変更)ができないです・・・・。

CentOS5.2, MySQL version: 5.0.45 を使用しています。 現状のユーザ権限は次のようになっています。 mysql> use mysql Database changed mysql> select host, user, select_priv, insert_priv, update_priv, delete_priv from user; +-----------+---------+-------------+-------------+-------------+-------------+ | host | user | select_priv | insert_priv | update_priv | delete_priv | +-----------+---------+-------------+-------------+-------------+-------------+ | localhost | root | Y | Y | Y | Y | | abcd | taro | N | N | N | N | +-----------+---------+-------------+-------------+-------------+-------------+ これを スーパーユーザで入り、 mysql> grant all privileges on DB.* to 'taro'@'abcd' identified by 'password' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) として終了し、クライアントから接続しなおしましたが、taroの権限が Y になりません。 どうすれば Y にすることができるでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数913
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

> mysql> select host, user, select_priv, insert_priv, update_priv, delete_priv from user; これは、グローバル権限 > mysql> select host, user, select_priv, insert_priv, update_priv, delete_priv from user; こちらは、データベース権限 ですので、確認内容と設定内容が一致してません。 データベース権限を確認するには mysql.db テーブルを参照する。 グローバル権限を設定するにはデータベースを *.* で権限を付与する。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答を契機にして調べました。なるほど、と納得です。 このようなことは不勉強で知りませんでした。奥が深いです。 ありがとうございました。 なお、ご回答の >こちらは、データベース権限 は、 mysql> grant all privileges on DB.* to 'taro'@'abcd' identified by 'password' with grant option; の方という理解でよろしいですよね。

関連するQ&A

  • MYSQL ユーザ作成について

    MYSQLのユーザ作成についてご質問させて頂きます。 管理者権限のあるユーザにてmysqlデータベースに接続し、 /usr/bin/mysql mysql -u admin -D mysql -p ユーザを作成しました。 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE ON DB名.* TO ユーザ名@localhost IDENTIFIED BY 'パスワード'; さまざまなサイトに記載されているとおり FLUSH PRIVILEGES; も行い、ユーザ一覧を確認してみると select * from mysql.user \G 権限が付与されていません。 Select_priv: N と表示されています。 エラー文が出てくるわけではないのでエラーではないと思いますが なぜなのでしょうか? ご教示ください。 よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • 自宅からVPS上のMySQLDBサーバに接続拒否

    mysql> grant all privileges on *.* to dice@"%" identified by '★★★★★' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; とやって、MySQLODBCを上の通りに設定して、access2010の外部リンクテーブルとして、VPSのDBに接続しようとしたら、 ODBC:接続に失敗しました、とでます。 なお、accessを使わず、odbcも使う必要がない、database manager なるソフトでVPSのDBに接続しようとしても、 接続が拒否されました、と言われます。 なぜなのでしょうか? まだ、ほかに、接続を拒んでいるものがあって、それをとりのぞかなければならないのでしょうか? よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 対話形式処理のスクリプト化

    例えば次のような処理をスクリプトやマクロで行いたいのですが可能でしょうか? (シェル言語はbash,zshなどを想定しておりますが他の言語を想定したご回答でも参考になります) ちなみに対話途中で表示される出力結果はあってもなくても構いませんが 出力結果を表示させないようなやり方から理解したいと考えております。 # mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 to server version: 4.1.12 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select user,host,password from ysql.user; +------+----------------------+----------+ | user | host | password | +------+----------------------+----------+ | root | localhost | | | root | centos.centossrv.com | | | | localhost | | | | centos.centossrv.com | | +------+----------------------+----------+ 4 rows in set (0.00 sec) mysql> set password for root@localhost=password('rootパスワード'); Query OK, 0 rows affected (0.00 sec) mysql> set password for root@'centos.centossrv.com'=password('rootパスワード'); Query OK, 0 rows affected (0.00 sec) mysql> select user,host,password from mysql.user; +------+----------------------+------------------+ | user | host | password | +------+----------------------+------------------+ | root | localhost | **************** | | root | centos.centossrv.com | **************** | | | localhost | | | | centos.centossrv.com | | +------+----------------------+------------------+ 4 rows in set (0.00 sec) mysql> exit Bye

  • phpMyAdminについて

    XAMPPでの設定でphpMyAdminの管理画面から特権をクリックすると以下のエラーが出ます。 エラー 実行した SQL: ( SELECT DISTINCT `User` , `Host` FROM `mysql`.`user` ) UNION ( SELECT DISTINCT `User` , `Host` FROM `mysql`.`db` ) UNION ( SELECT DISTINCT `User` , `Host` FROM `mysql`.`tables_priv` ) UNION ( SELECT DISTINCT `User` , `Host` FROM `mysql`.`columns_priv` ) UNION ( SELECT DISTINCT `User` , `Host` FROM `mysql`.`procs_priv` ) ORDER BY `User` ASC , `Host` ASC MySQLのメッセージ: #1017 - Can't find file: 'tables_priv' (errno: 2) このエラーはどこが悪いのでしょうか? わかる方いましたらご回答お願いします。

  • DBへの権限付与について

    MySQLで、ユーザーを作成しGRANT文でDBへの権限を 付与したのですが、DBにアクセスできません。 原因がわかりましたら、教えていただけますでしょうか。 まず、rootユーザーでユーザーを作成し、DBへの参照権限を付与。 >GRANT ALL ON TESTDB.* TO USER01@localhost IDENTIFIED BY 'passwd'; rootユーザーで権限を確認。 >SHOW GRANTS FOR USER01@localhost; GRANT USAGE ON *.* TO 'USER01'@'localhost' GRANT ALL PRIVILEGES ON `TESTDB`.* TO 'USER01'@'localhost' ユーザー:USER01 でログインし、DBの参照を確認。 > SHOW DATABASES; information_schema SHOW DATABASES の結果に、TESTDB が出てくるはずと 思うのですが、なぜ表示されないのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MySQL 5.1 のCHAR(M)型に関して

    MySQL 5.1の CHAR(M)型のMは「文字数」でしょうか?それとも「バイト数」でしょうか? 教えて頂けませんか? 自分の認識では「文字数」と思っているのですが、下記のような現象が発生しております。 mysql> mysql> mysql> mysql> mysql> SHOW CREATE TABLE TEST\G; *************************** 1. row *************************** Table: TEST Create Table: CREATE TABLE `TEST` ( `MOJI` char(6) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.01 sec) ERROR: No query specified mysql> mysql> SELECT * FROM TEST; Empty set (0.00 sec) mysql> mysql> INSERT INTO TEST (MOJI) VALUES ('ああああ'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> mysql> SELECT * FROM TEST; +--------+ | MOJI | +--------+ | ああ | +--------+ 1 row in set (0.00 sec) mysql> mysql> INSERT INTO TEST (MOJI) VALUES ('abcdef'); Query OK, 1 row affected (0.00 sec) mysql> mysql> SELECT * FROM TEST; +--------+ | MOJI | +--------+ | ああ | | abcdef | +--------+ 2 rows in set (0.00 sec) mysql> mysql> mysql> mysql> 環境はCentOS 5.5 で、OSの文字コードもMySQLの文字コードも「utf8」としています。 どうかご教授下さい。

  • Query OK, 0 rows affected

    Query OK, 0 rows affected (0.00 sec) が、MySQLに与える影響について、教えてください。 この場合、「0 rows affected」て書いてあるので、 MySQLに与える影響はない、と考えてよいのでしょうか? それとも、何らかの場合(例えばrows以外)では、 コマンドによっては、 この表示が出ても、 MySQLの設定とかが変更されることはあるのでしょうか? 知りたいのは、 この表示が出てきたとき、 打ったコマンドが 「100%失敗だった」か、あるいは、「必ずしもそうとは限らない」、かについてです。

    • ベストアンサー
    • MySQL
  • 助けてください。Xampp MySQLへログインできなくなってしまいました。

    お世話になります。 XampでMySQLを扱おうと悪戦苦闘中です。 サイト http://homepage1.nifty.com/gak/webdb/mysql.html と、 書籍 PHPによるWebアプリケーションスーパーサンプル第2版 p.740 を参考にしながら行いました。 最初 c:\zampp\mysql\bin>mysql -u root で、mysqlへ入れました。 そして、パスワードを設定しました。 mysql> use mysql Database changed 次にrootユーザーパスワードの設定をしました。 mysql> update mysql.user set password='****' where user='root'; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> 次に、mysqladminでもパスワードの設定ができるということが記載されていたので、一端MySQLをExitして、試してみました。 C:\xampp\mysql\bin>mysqladmin -u root password '**' mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)' と、いう結果でした。 どうも受け付けられなかったようです。 そして、再度MySQLへ入ろうと C:\xampp\mysql\bin>mysql -u root -p Enter password:****** ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwordO) となってログインできなくなってしまいました。 Enter password: で、先ほど設定したパスワードを入力しています。 MySQLのパスワードを忘れた場合は、という記載もありまして、 「--skip-grant-tables オプションを指定してmysqldを起動」 と、いうことでしたので以下のように実行してみましたが、やはりダメでした。 C:\xampp\mysql\bin>mysqld --skip-grant-tables C:\xampp\mysql\bin>mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password O) もう、お手上げです。 おわかりになる方見えましたら、なにとぞよろしくお願いします。 コマンド出力は記録をとりながら行っていたので、こうして記載もできました。

    • ベストアンサー
    • MySQL
  • ユーザ追加して、パスワード無しでもログインできてしまう。

    はじめまして、ronron77と言います。 環境:fedora4+MySQL4.1.16 mysql>grant all on *.* to user1 identified by 'user1' with grant option; でユーザ追加後、 > mysql -u user1 -p >Enter password:user1 mysql> でログインできますが、 > mysql -u user1 mysql> でもログインできてしまいます。 ちなみに、rootでログインすると、 mysql> select host,user,password from mysql.user; host user password localhost root ******* | % user1 ******* | で、パスワードはちゃんと設定されています。 > mysql -u user1 では、ログインできないようにするにはどうしたらよいのでしょうか?

    • ベストアンサー
    • MySQL
  • PHP+MySQLでデータ登録がうまくいかない

    いつもお世話になっています。 早速質問です。 ユーザ登録フォームの作成をしています。 Select文を使って2重登録の確認後、DBに登録するのですが 2重登録はちゃんと機能しているのに、登録が出来ません。 どのようにしたらいいか、アドバイスいただけますか? お手数ですが、よろしくお願いします。 mysql_query("lock tables user_data write"); $sql = "select USER from user_data where USER = '" . $_POST["USER"] . "'"; $res = mysql_query($sql); if (mysql_num_rows($res) > 0) { echo "すでに登録済みです。"; mysql_query("unlock tables"); mysql_close($con); exit; } $sql = "insert into user_data(USER, pass) values ('" . $_POST["USER"] . "','" . $_POST["pass"] . "');"; mysql_query($sql); mysql_query("unlock tables"); mysql_close($con);

    • ベストアンサー
    • MySQL