MySQLユーザーは、MySQLサーバー自体のユーザー用です。これらのユーザーは、サーバー管理者またはユーザーの実行を必要とするアプリケーション(各アプリケーションに個別のユーザーを指定)のみが使用できるように予約する必要があります。 MySQLユーザー管理システムは、サーバー上で実行されているデータベースへの制御されたアクセスに対応するために特別に構築されたものであり、Webアプリケーションでのユーザー認証の基礎となるものではありません。さらに、データベースの追加(およびユーザーの作成)には、データベースに対するそれらのアクセス許可を持つアプリケーションを実行しているユーザーが必要になります。それ自体は直接的な脆弱性ではありませんが、PHPシステムで見つかった場合は、生活が大幅に悪化する可能性があります。
アプリケーションがMySQLデータベースの名前空間を追加のデータベースまたは(そのことについてはテーブル)で汚染できるようにしたくはありません。アプリケーションの操作中は、最小特権の原則 、つまり、データベースユーザーに、必要なことだけを実行するためのアクセス権を付与し、それ以上は何も実行しないようにします。
パスワードハッシュに関しては、 PHPのcrypt()関数を介してbcryptを使用 してください。 。これをデータベース内のusersテーブルに保存します。