特権の付与中にユーザー 'root' のアクセスが拒否されました
MySQL で、「GRANT」を使用して別のユーザーに特権を付与しようとしました' コマンドを使用すると、ユーザーとしてログインしているにもかかわらず、複雑な「アクセスが拒否されました」エラーが発生する場合があります。正しいパスワードを持つ特権「root」ユーザー。この奇妙な問題は、MySQL のユーザー管理の機密な側面である mysql.users テーブルに権限を委任しようとしたことが原因です。
エラーの原因
mysql.usersテーブルには、ハッシュ化されたパスワード、権限、設定など、MySQL ユーザーに関する機密情報が含まれています。データベースの整合性とセキュリティを確保するために、「root」ユーザーのみにこのテーブルに対する権限を与えるアクセスが許可されます。これは、ユーザー アカウントやデータベースの権限に対する不正な変更を防ぐための安全対策として適用されます。
適切な付与方法
権限を効果的に付与するには、 の使用を避けてください。 または mysql.users テーブルを含む可能性のある同様の構文。代わりに、次の構文を使用して、特定のテーブル、データベース、またはグローバル オブジェクトに対する権限を付与します。
GRANT [privileges] ON [database].[table] TO '[user]'@'[hostname]' IDENTIFIED BY '[password]';
このアプローチでは、mysql.users テーブルを除く特定のオブジェクトへの権限の委任が制限されます。
追加メモ
すべての権限を持つ「root」ユーザーを使用する場合セキュリティ上の理由から推奨されていませんが、特定の状況では必要になる場合があります。 「root」ユーザーの使用を選択する場合は、強力なパスワード、ネットワーク暗号化、定期的なデータベース監査などの強力なセキュリティ対策が講じられていることを確認してください。
以上がMySQL の root ユーザーであっても、権限の付与が「アクセスが拒否されました」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。