MySQL:データベースに対する**すべて**の権限を付与します

629
marioosh 2011-02-17 02:38.

'mydb'などのデータベースを作成しました。

CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'myuser'@'%' IDENTIFIED BY PASSWORD '*HASH';
GRANT ALL ON mydb.* TO 'myuser'@'%';
GRANT ALL ON mydb TO 'myuser'@'%';
GRANT CREATE ON mydb TO 'myuser'@'%';
FLUSH PRIVILEGES;

これで、どこからでもデータベースにログインできますが、テーブルを作成できません。

そのデータベースと(将来的には)テーブルに対するすべての特権を付与する方法。'mydb'データベースにテーブルを作成できません。私はいつも得る:

CREATE TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE utf8_bin);
ERROR 1142 (42000): CREATE command denied to user 'myuser'@'...' for table 't'

11 answers

934
diagonalbatman 2011-02-17 02:45.
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%' WITH GRANT OPTION;

これは、「スーパーユーザー」特権を作成する方法です(通常はホストを指定しますが)。

重要な注意点

この回答はアクセスの問題を解決WITH GRANT OPTIONできますが、他のユーザーのアクセス許可を編集できるMySQLユーザーを作成します。

GRANT OPTION特権を使用すると、自分が所有している特権を他のユーザーに付与したり、他のユーザーから削除したりできます。

セキュリティ上の理由から、このタイプのユーザーアカウントは、一般の人がアクセスできるプロセス(つまり、Webサイト)には使用しないでください。そのような用途には、データベース権限のみを持つユーザーを作成することをお勧めします。

538
akostadinov 2013-03-30 06:56.

これは古い質問ですが、受け入れられた答えは安全ではないと思います。スーパーユーザーの作成には適していますが、単一のデータベースに対する特権を付与する場合には適していません。

grant all privileges on mydb.* to [email protected]'%' identified by 'mypasswd';
grant all privileges on mydb.* to [email protected] identified by 'mypasswd';

%ソケット通信をカバーしていないようlocalhostです。WITH GRANT OPTIONスーパーユーザーにのみ有効です。それ以外の場合は、通常、セキュリティ上のリスクがあります。

MySQL 5.7+のアップデートは、次のように警告しているようです。

GRANTステートメントを使用して特権以外の既存のユーザーのプロパティを変更することは非推奨であり、将来のリリースで削除される予定です。この操作にはALTERUSERステートメントを使用します。

したがって、パスワードの設定は別のコマンドで行う必要があります。@ scary-wombatからのコメントに感謝します。

ALTER USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
ALTER USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

お役に立てれば。

127
Noname 2013-11-20 01:26.

これは一部の人に役立ちます:

MySQLコマンドラインから:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

残念ながら、この時点で、newuserにはデータベースを操作する権限がありません。実際、newuserが(パスワード、パスワードを使用して)ログインしようとしても、MySQLシェルに到達することはできません。

したがって、最初に行うことは、ユーザーが必要とする情報へのアクセスを提供することです。

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

このコマンドのアスタリスクは、アクセスできるデータベースとテーブルを(それぞれ)示しています。この特定のコマンドを使用すると、ユーザーはすべてのデータベースとテーブルのすべてのタスクを読み取り、編集、実行、および実行できます。

新しいユーザーに設定する権限を確定したら、必ずすべての権限を再読み込みしてください。

FLUSH PRIVILEGES;

これで、変更が有効になります。

詳細については: http://dev.mysql.com/doc/refman/5.6/en/grant.html

コマンドラインに慣れていない場合は、MySQLワークベンチ、Navicat、SQLyogなどのクライアントを使用できます。

31
Bhavnesh 2016-03-20 19:13.

 1.データベースを作成します

CREATE DATABASE db_name;

 2.データベースdb_nameのユーザー名を作成します

GRANT ALL PRIVILEGES ON db_name.* TO 'username'@'localhost' IDENTIFIED BY 'password';

 3.データベースを使用する

USE db_name;

 4.最後に、データベースdb_nameに移動し、create、select、insert操作などのコマンドを実行します。

21
s6712 2014-12-09 14:37.

このSQLは、基本的な特権だけを除いて、すべてのデータベースに付与します。DrupalやWordpressには十分であり、優れた点として、1人の開発者アカウントでローカルプロジェクトを実行できます。

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, 
    INDEX, ALTER, CREATE TEMPORARY TABLES 
ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
21
Dutch Glory 2015-06-07 22:21.
GRANT ALL PRIVILEGES ON mydb.* TO [email protected] IDENTIFIED BY 'mypasswd';

スキーマの特権で機能します:)

オプション:mypasswd追加できる後WITH GRANT OPTION

16
GnanaPrakash 2015-10-26 04:49.

追加するだけで動作させることができましたがGRANT OPTION、常に許可拒否エラーが発生することはありません

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost' WITH GRANT OPTION;
14
gastonnina 2014-10-08 09:53.

こんにちは私はこのコードを使用してmysqlにスーパーユーザーを配置しました

GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE,
    CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP,
    EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE,
    LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN,
    SUPER
        ON *.* TO [email protected]'%'
    WITH GRANT OPTION;

その後

FLUSH PRIVILEGES;
6
Developer 2015-06-26 01:32.

リモートサーバーからmydbデータベースにのみアクセスするには

GRANT ALL PRIVILEGES ON mydb.* TO 'root'@'192.168.2.21';

リモートサーバーからすべてのデータベースにアクセスします。

GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.2.21';
4
pgmank 2018-03-30 04:16.

データベース上のすべての特権をmydbユーザーに付与するには:myuser、実行するだけです:

GRANT ALL ON mydb.* TO 'myuser'@'localhost';

または:

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';

PRIVILEGESキーワードは必要ありません。

また、他の回答IDENTIFIED BY 'password'がコマンドの最後に置くことを示唆している理由もわかりません。必須ではないと思います。

1
Promise Preston 2020-10-01 06:53.

MySQL Ver 8.0.21で作業しているときに、この課題がありました

ホストで実行しmy_app_dbているrootユーザーに名前付きデータベースのアクセス許可を付与したかったのlocalhostです。

しかし、私がコマンドを実行すると:

use my_app_db;

GRANT ALL PRIVILEGES ON my_app_db.* TO 'root'@'localhost';

エラーが発生します:

エラー1064(42000):SQL構文にエラーがあります。1行目の「my_app_db。* TO」「root」@「localhost」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください>

これが私が修正した方法です

MySQLコンソールにログインします。ログインrootするユーザーに変更できます。

mysql -u root -p

あなたの入力します。mysqlのrootのパスワードを

次に、MySQLサーバー上のすべてのユーザーとそのホストを一覧表示します。PostgreSQLとは異なり、これは多くの場合mysqlデータベースに保存されます。したがって、mysql最初にデータベースを選択する必要があります。

use mysql;
SELECT user, host FROM user;

:を実行しないとuse mysqlno database selectedエラーが発生します。

これにより、次のような出力が得られます。

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

次に、リストから取得した情報に基づいて、必要なユーザーに特権を付与します。データベースに権限を付与する前に、まずデータベースを選択する必要があります。私の場合rootlocalhostホストで実行されているユーザーを使用しています。

use my_app_db;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';

:このGRANT ALL PRIVILEGES ON database_name.* TO 'root'@'localhost';コマンドは、MySQLの最新バージョンでは機能しない場合があります。MyQLの最近のほとんどのバージョンは置き換えdatabase_name*して権限の付与、あなたが使用したいというデータベースを選択した後、コマンド。

その後、MySQLコンソールを終了できます。

exit

それでおしまい。

これがお役に立てば幸いです

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

ホワイトハウスの最も記憶に残る結婚式を見てください

ホワイトハウスの最も記憶に残る結婚式を見てください

過去200年以上の間にホワイトハウスで結婚したのはほんの数人です。彼らは誰でしたか、そしてそこで結婚式を獲得するために何が必要ですか?

Netflixのジョエルマクヘイルとのジョエルマクヘイルショーは、ジョエルマクヘイルにぴったりの車を復活させます

Netflixのジョエルマクヘイルとのジョエルマクヘイルショーは、ジョエルマクヘイルにぴったりの車を復活させます

ジョエル・マクヘイル、マイク・コルター(スクリーンショット:Netflix)「私の神よ、これは1つのことを変えます。」これは、ジョエル・マクヘイルとのジョエル・マクヘイルショーの最後のジョークです。リアリティ番組の嘲笑と寛大なスナキネスの時間は、なじみのある顔を見つけます。

チームロケットは20年ぶりにポケモンシリーズでアッシュを破った

チームロケットは20年ぶりにポケモンシリーズでアッシュを破った

画像経由:@pancakeparadox(Twitter)。1997年にポケモンシリーズが初公開されて以来、チームロケット(またはラテンアメリカではチームロケット)として知られる悪役のグループは、何度もアッシュに直面してきました。

今週の科学技術でトランプがめちゃくちゃになったことすべて

今週の科学技術でトランプがめちゃくちゃになったことすべて

画像:ゲッティ私たち全員が千年もの間生きていて、私たちの体が燃える風によってほこりと長引く悲鳴だけに押し流されたと考えるのは驚くべきことです。私たちがそうしていないことを除いて、それはトランプ政権の最初の週の終わりであり、驚くほど多くの恐ろしいことがすでに起こっています。

あなたの「マイクロピッグ」が代わりに通常のピッグになってしまったとしても驚かないでください

あなたの「マイクロピッグ」が代わりに通常のピッグになってしまったとしても驚かないでください

そして今、あることを手に入れていると思っていたが、まったく別のことをしてしまった男の話。CBSニュースは、彼女が「ミニブタ」であるという誤ったふりをしてエスターを養子にしたカナダ人のスティーブジェンキンスの心温まる物語をもたらします。これは、特にせいぜいゴールデンレトリバーまたはセントバーナードをストラップします。

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya Wishes Boyfriend Tom Holland Happy Birthday with Cuddly Photo: He 'Makes Me the Happiest'

Zendaya shared a sweet photo in honor of boyfriend Tom Holland's 26th birthday Wednesday

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

小さな女性:脳卒中を患った後に病院から解放されたアトランタのジューシーな赤ちゃん:「まだ癒し」

シーレン「Ms.JuicyBaby」ピアソンは、先月脳卒中で入院した後、「もう一度たくさんのことをする方法を学ばなければならない」ため、言語療法を受けていることを明らかにしました。

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

エマストーンは彼女のクリフサイドマリブビーチハウスを420万ドルでリストアップしています—中を見てください!

オスカー受賞者の世紀半ばの家には、3つのベッドルーム、2つのバス、オーシャンフロントの景色があります。

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、母乳育児の経験の中で、彼女は「本当に、本当に落ち込んでいる」と言います

ジーニー・メイ・ジェンキンスは、生後4か月の娘、モナコに母乳育児をしていると語った。

投資ノート:Bioscout AU$300万シード

投資ノート:Bioscout AU$300万シード

Bioscoutは、農家を運転席に置くという使命を負っています。Artesian(GrainInnovate)やUniseedと並んで、最新のシードラウンドでチームを支援できることをうれしく思います。問題真菌症による重大な作物の損失は、農民にとって試練であることが証明されています。

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

リトルマーケットリサーチ1| 2022年のクイックグリンプス遠隔医療市場

遠隔医療は、パンデミック後の時代では新しいものではなく、時代遅れの分野でもありません。しかし、業界を詳しく見ると、需要と供給の強力な持続可能性と、米国で絶え間ない革命となる強力な潜在的成長曲線を示しています。

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

スタートアップ資金調達環境:タイのスタートアップエコシステムの次は何ですか?

2021年は、世界的なベンチャーキャピタル(VC)の資金調達にとって記録的な年でした。DealStreetAsiaによると、東南アジアも例外ではなく、この地域では年間で記録的な25の新しいユニコーンが採掘されました。

ムーアの法則を超えて

ムーアの法則を超えて

計算に対する私たちの欲求とムーアの法則が提供できるものとの間には、指数関数的に増大するギャップがあります。私たちの文明は計算に基づいています—建築と想像力の現在の限界を超える技術を見つけなければなりません。

Language