質問: 前提 -- さくらのレンタルサーバ スタンダードプラン データベースを作成している やりたいこと ------ 1. sshでサーバーにログイン後 2. mysqlにログイン 3. データベースに対して処理をする 問題点 --- 1,2まではできるのですが、 `SELECT COLUMNS FROM mysql.user;`を実行すると、`ERROR 1142 (42000): SELECT command denied to user 'FTPアカウント名'@'xx.xxx.xx.xxx' for table 'user'`というエラーが出る。これを調べたところ、おそらく権限がないのではないかと思う。 そのため、ログインに使用した FTPアカウント(自動で作られた)では、root権限がないと思われるので、root権限を持つユーザーの名前とパスワードを調べたいです。 ですが、それがどこに書いてあるのかが全くわかりません。 どうかよろしくおねがいします。 追記 -- ### その1(コマンドの履歴) $ ssh sakura Last login: Sun Sep 8 18:29:25 2019 from 202-229-49-79.ap-p27.canvas.ne.jp FreeBSD 11.2-RELEASE-p9 (GENERIC) #0: Tue Feb 5 15:30:36 UTC 2019 Welcome to FreeBSD! % mysql -u ai-watch -pパスワード -h mysqlxxxdb.sakura.ne.jp mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is xxxxxxxx Server version: 5.7.23-log MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | ai-watch_test | +--------------------+ 2 rows in set (0.03 sec) mysql> use ai-watch_test Database changed mysql> show tables; Empty set (0.00 sec) mysql> SELECT Host, User, Password FROM mysql.user; ERROR 1142 (42000): SELECT command denied to user 'ai-watch'@'xx.xxx.xx.xxx' for table 'user' mysql> exit Bye % mysql -u root -pパスワード -h mysqlxxx.db.sakura.ne.jp mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'xx.xxx.xx.xxx' (using password: YES) % mysql -u root -h mysqlxxx.db.sakura.ne.jp ERROR 1045 (28000): Access denied for user 'root'@'xx.xxx.xx.xxx' (using password: NO) % 注:xは数字の伏せ字です
回答: > > 1,2まではできるのですが、 > > SELECT COLUMNS FROM mysql.user;を実行すると、ERROR 1142 (42000): SELECT command denied to user 'FTPアカウント名'@'xx.xxx.xx.xxx' for table 'user'というエラーが出る。これを調べたところ、おそらく権限がないのではないかと思う。 > > > そのため、ログインに使用した FTPアカウント(自動で作られた)では、root権限がないと思われるので、root権限を持つユーザーの名前とパスワードを調べたいです。 > > ですが、それがどこに書いてあるのかが全くわかりません。 > > > mysql.user は、ユーザー情報テーブルと思いますが、これを確認したい目的は何でしょうか? 当然ですが、ユーザー情報は管理者しか閲覧・変更できません。 「さくらのレンタルサーバー」は、共用サーバで、「root 権限は提供されてません」ので、管理者権限が必要な機能は利用できません。( 【さくらのレンタルサーバ】基本仕様を確認するとの「root権限」欄に「`×`」 とされている。) 「共用サーバ」のサービスなので、複数人が同じサーバーを利用しています。管理者権限があると他者のデータを閲覧・更新・削除が可能になるため、許可されていないと思われます。 管理者権限も含めて、すべての権限を利用したいのであれば、 * ローカル環境に linux 等をインストールして環境を構築する * VPS 等の root 権限が提供されているサービスを利用する 等の必要があります。 いずれの場合も サーバー全体を自分で管理する必要があります。 サーバーの管理で、不備があると「不正なアクセスでサーバーに侵入される」こともありますので、サーバー全体を管理することを考えられているのであれば、まずはローカル環境でシステム構築して必要な知識を身につけることをおすすめします。