承認を最もシンプル、簡単、便利に行い、メンテナンスの負荷を最小限に抑えたい場合は、当然のことながら、すべての権限をすべてのユーザーに付与するのが最も簡単で便利な方法であることは誰もが知っていると思います。しかし、ユーザーの権限が大きくなればなるほど、ユーザーがシステムにもたらす潜在的な脅威も大きくなることは誰もが知っています。したがって、セキュリティの観点からは、付与されるアクセス許可は小さいほど良いと言えます。十分なセキュリティ意識を持った管理者は、認可を行う際に必要な権限のみを付与し、不必要な権限は付与しません。この章ではセキュリティについて説明することに専念しているため、セキュリティの観点からより安全で合理的な認可戦略を設計する方法を検討します。
まず、訪問ホストについて知る必要があります。
MySQL データベースのログインではユーザーが検証されるため、ユーザー名とパスワードに加えて、ソース ホストも検証する必要があります。したがって、各ユーザーがどのホストから接続を開始できるかを知る必要もあります。もちろん、「%」ワイルドカードを直接使用して、認可中にすべてのホストにアクセス許可を与えることもできますが、これはセキュリティ ポリシーの原則に違反し、潜在的なリスクをもたらすため、お勧めできません。特に LAN 上にファイアウォール保護がない場合、どのホストからでもログインできるユーザーの存在を簡単に許可することはできません。特定のホスト名またはIPアドレスで指定できる場合は、特定のホスト名またはIPアドレスで訪問先ホストを制限するようにしてください。特定のホスト名またはIPアドレスで指定できない場合も同様に制限する必要があります。できるだけ小さいワイルドカード範囲を使用します。
次に、ユーザーのニーズを理解します。
必要な権限のみを付与したいので、各ユーザーが果たす役割を理解する必要があります。つまり、各ユーザーがデータベースに接続して完了する必要がある作業を完全に理解する必要があります。ユーザーが読み取り専用のアプリケーション ユーザーであるか読み取り/書き込みアカウントであるか、ユーザーが特定の (または少数の) データベース (スキーマ) にのみアクセスする必要があるかどうかを理解します。 )、すべてのデータベースにアクセスする必要があります。何をする必要があるかを理解することによってのみ、どのような権限を付与する必要があるかを正確に理解することができます。権限が低すぎると作業が正常に完了せず、権限が高すぎるとセキュリティ上のリスクが生じる可能性があるためです。
もう一度、作品を分類します。
それぞれの職務を遂行するには、実行する必要がある作業を分類し、作業の種類ごとに異なるユーザーを使用し、ユーザーを適切に分離する必要があります。これにより、管理コストの点で作業負荷がいくらか増加する可能性がありますが、セキュリティを考慮すると、この管理作業負荷の増加にはそれだけの価値があります。そして、私たちが行う必要があるユーザーの分離は、適度な分離にすぎません。たとえば、バックアップ作業、レプリケーション作業、一般的なアプリケーション アクセス、読み取り専用アプリケーション アクセス、および日常の管理作業を実行するための特定のアカウントを個別に作成し、それぞれに必要な権限を付与します。このようにして、セキュリティ リスクを最小限に抑えることができ、同じ種類とレベルの類似した権限を互いに絡み合うことなく統合できます。 PROCESS、FILE、SUPER などの特別なアクセス許可は、管理者アカウントにのみ必要であり、他の非管理者アカウントには付与しないでください。
最後に、絶対に必要なユーザーのみが GRANT OPTION 権限を持つようにしてください。
GRANT OPTION 権限の特殊性と、この権限を持つことによる潜在的なリスクについては、以前に権限システムを導入したときにすでに学習しているため、ここでは詳しく説明しません。つまり、セキュリティ上の理由から、GRANT OPTION 権限を持つユーザーの数はできるだけ少なくなり、スーパー権限を持つユーザーのみが GRANT OPTION 権限を持つようになります。
上記は MySQL アクセス許可ポリシーの内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) を参照してください。