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

MySQLでの権限付与について

MySQLでrootの使用をなるべく避けるため DB作成、ユーザ作成などは違うユーザを作って行いたいですが、 権限を与えることはrootでしかできないと聞きました。 本当にMySQL内でgrant権限を持つユーザを作成するのはできないでしょうか?

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

  • MySQL
  • 回答数1
  • 閲覧数285
  • ありがとう数0

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

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

こんにちわ。 root以外のユーザにgrant権限を付与することは可能です。 参考URLの 【1.管理者用ユーザを作りたい】 をご覧頂ければわかりますが、"WITH GRANT OPTION"でgrant権限をユーザに付与できます。 >GRANT ALL ON *.* TO adminuser@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; そのユーザが持つ権限の範囲内でgrantをできるようです。

参考URL:
http://nosa.cocolog-nifty.com/sanonosa/2010/10/mysql-223c.html

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

関連するQ&A

  • 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
  • 権限付与(変更)ができないです・・・・。

    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 にすることができるでしょうか?

    • ベストアンサー
    • MySQL
  • mysql 権限設定

    ラピッドサイトのmysqlを利用しています。 javaからのリモート接続を試していますが繋がらなかったので原因をつめていったところ DB:mysqlのTABLE:userに権限を接続する必要がある?事がわかりました。 ただmysqlにrootの権限で接続してshowを行ってもDB:mysqlは存在しません。 後考えられることはrootの情報がuserテーブルに入っていないくらいしか思いつきません どなたかご解答おねがいします。

  • linux権限について

    CentOS5系を使用しています。 あるディレクトリ(下記のような権限を持つディレクトリ) の配下でのみrootと同様の権限を持つユーザを作成したいと思っています。 drwxr-xr-x 15 root root ディレクトリ名⇒Hoge グループの権限はrwxにしても良いと考えていますが、 useraddで新規ユーザを作成して usermod -Gでrootグループにユーザを追加してしまうと そのユーザは他のディレクトリでもrootと同様の権限を持てることとなってしまいます。 あくまでHogeディレクトリ配下でのみrootユーザと同様の権限を持たせたいと思っています。 どなたか知恵をお貸しください。

  • 全権限をもつユーザの追加方法

    環境 DB:mysql-5.0.70-r1 OS:WindowsXP上のVMWearServerにゲストOSとして構築したGentoo 質問内容 emerge mysql でmysql をインストール後、rootユーザが作成されていない ため、mysqlにログインできませんでした。my.cnfに skip-grant-tables を追加して、ログイン後 mysqlデータベースにたいし、 select * from user; でEmpty setと返ってきたため、そう判断しました。 また、このモードでは、たとえば、 GRANT ALL ON *.* TO hoge@"localhost"IDENTIFIED BY "hogehoge"; などができません。 どうすれば、全権限をもったユーザを作成できるのでしょうか。 何卒回答を宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • [MySQL] rootの権限を消してしまった

    何を血迷ったか、 REVOKE ALL PRIVILEGES ON * . * FROM "root"; とやってしまい、 create database test; ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'test' といっか感じでエラーを吐いてしまいます。 GRANTで権限を与えようにも、同様にエラーを吐いてしまいどうにもなりません... 助けてください。よろしくお願いします。

    • ベストアンサー
    • MySQL
  • MySQLの起動ユーザ

    よろしくお願いします。 OS:Redhat Enterprise Linux 6 DB:MySQL5.6 OSでrootで作業をしており、MySQLをrpmパッケージからインストールすると、 実行ユーザがrootになってしまうことを危惧しています。 サービスをrootで起動することはセキュリティ上 望ましくない、と聞きました。 別途「mysql」というユーザを作成しました。 このmysqlユーザをサービスの起動ユーザとしたいのですが、 どういった手順でそれを実施すれば良いでしょうか?。

    • ベストアンサー
    • MySQL
  • 緊急!!MySQLの権限が回復できません

    うみません、会社のデータベースサーバーにて 昨日外部からのアタックを受けたため 一度MySQLを無効にしようと思い、phpMydminからユーザー権限を全て削除してしまいました。 このやり方にも問題があったのですが、今の問題はそのMySQLのルートのパスワードが分からないので権限を回復することができず会社のサービスが完全に停止してしまっています。 確認したいところはまず、ユーザー権限を削除した場合全てのテーブルが消えているのかどうか? ルートのパスワードを再設定したばあい、既存のデータベースに何か影響があるのか? ルート権限からユーザーの権限を回復した場合もとの状態に戻るのか? 最悪の場合テーブルのデータを抜き出して、DBの再構築をすることで対処するしかないのか?その場合テーブルのデータが格納されているファイルの所在はどこになるのか?(サーバーOSはFreeBSDです) 以上の項目に関してどなたか知恵を貸していただければと思います。 よろしくお願いします

  • 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
  • ユーザーへのディレクトリ権限付与について

    WindowsXPのOracle9i環境にて、 まず、以下のようにしてユーザ「username」を作成しました。 create user username identified by Password default tablespace tab_space temporary tablespacetemp; grant dba,resource,connect to username; 次にsysユーザにて、CREATE DIRECTORY FILE_PATH as 'd:\temp'; ディレクトリを作成しました。 そして、そのディレクトリに対して、以下のように権限付与しようとすると、「ユーザ"username"が存在しません。」エラーが発生します。 grant READ,WRITE ON directory dir to username; また、grant READ,WRITE ON directory dir to public; とすると、権限付与は成功しますが、ユーザusernameにはディレクトリ参照権限は与えられていませんでした。 何か間違っておりますでしょうか? それとも何か手順で足らないものがあるのでしょうか? ご教示いただければと思います。