web-dev-qa-db-ja.com

「Grant」という名前のユーザーに特権を付与しますか?

CREATE USER 'Grant'@'localhost' IDENTIFIED BY 'bestpasswordever';

「許可」という名前のユーザーにアクセス許可を付与するにはどうすればよいですか?エラーをスローします。

GRANT INSERT, DELETE
ON table
TO Grant@localhost;

エラー:「付与」はこの位置では無効です。識別子が必要です。

6
MontyLemons

予約済みのキーワードまたは識別子を識別子として使用する場合は、それ以外の場合は無効な文字を識別子として使用する必要があります

GRANT INSERT, DELETE
ON table
TO `Grant`@localhost;

ドキュメント のように、アポストロフィまたは二重引用符も問題ありません。

ユーザー名とホスト名を、バッククォート( `)、単一引用符( ')、または二重引用符(")を使用して、識別子または文字列として引用します。文字列引用と識別子引用のガイドラインについては、セクション9.1.1、 「文字列リテラル」およびセクション9.2「スキーマオブジェクト名」。

...しかし私は純粋主義者で、識別子には常にMySQLのバックティックを使用します。

8
Lukas Eder
GRANT INSERT,DELETE
ON table
TO 'Grant'@'localhost';

ドキュメントの セクション6.2.4(アカウント名の指定) を参照してください。

アカウント名の構文は「user_name」@「Host_name」です。

1
Steve Brandli