2016-11-24 8 views
0

phpMyAdminを使用して新しいMySQLユーザーhomesteadを作成しました。このとき、同じ名前の新しいデータベースを作成しました。以下に示すように、homesteadには、homesteadhomestead\_%の2つのデータベースに対するアクセス許可が与えられました。MySQLデータベースのアクセス権に関して「 _%」とは何を意味しますか?

\_%は何を意味していますか?私は後で新しいデータベースlaravelを作成し、ユーザhomesteadに最初のテーブルと同じ権限を持たせてもらいたいと思います。 laravel\_%へのアクセス許可も追加する必要がありますか?

enter image description here

+1

で始まる任意のデータベースに権限を拡張する方法はにコーヒーカップのように見える明らかです私。 – Eimantas

+0

@エマンタスはい、そうですね!戻って、私は、ユーザーを作成したときに、「ワイルドカード名(ユーザー名\ _%)にすべての特権を与える」をクリックしたことがわかりました。これが実際に何を意味するのかわからない... – user1032531

+0

_は1文字のワイルドカードを意味する可能性があります。 %は0文字以上を意味します。これは、 'username'で始まるユーザ名を使用してログインすることができることを意味します。 – Eimantas

答えて

2

%_単にSQLワイルドカードです。 GRANT syntaxはそれらを可能にする:データベースレベルで権限を付与 GRANT文でデータベース名を指定するとき

_および%のワイルドカードが許可されています。

あなたは(\__がエスケープされていることに気づくことがあります。

あなたは データベース名の一部として_文字を使用したい場合、あなたはGRANT文で\_としてそれを指定する必要があり、 にユーザーが追加データベースにアクセスできないようにします。 はワイルドカードパターンに一致します。例えば、 `fooというの\ _bar` ON、GRANT ...。* .... TO

それはhomestead_...

+1

これはまさに正しいことです。ユーザーを作成したときに、「ワイルドカード名(ユーザー名\ _%)にすべての特権を付与する」チェックボックスをオンにしたと考えられます。 –

関連する問題