MySQL は、クライアント操作を処理するための包括的なアクセス ルールを作成し、無許可のクライアントによるデータベース システムへのアクセスを効果的に防止できる、高度なアクセス制御および権限システムを実装しています。
1. クライアントがサーバーに接続するとき、MySQL アクセス制御には 2 つのフェーズがあります:
接続検証
: MySQL データベース サーバーに接続するクライアントには、有効なユーザー名とパスワードが必要です。さらに、クライアントが接続するホストは、MySQL 認証テーブルのホストと一致する必要があります。
リクエストの検証
: 接続が正常に確立されると、クライアントによって発行されたステートメントごとに、MySQL はクライアントに特定のステートメントを実行するための十分な権限があるかどうかを確認します。 。 MySQL は、データベース、テーブル、フィールド レベルの権限をチェックできます
2. MySQL インストーラー
は、mysql という名前のデータベースを自動的に作成します。
mysql データベース
には、5 つの主要な認可テーブルが含まれています。 GRANT
や REVOKE
などのステートメントを使用してこれらのテーブルを間接的に操作できます。
user
テーブル: ユーザー アカウントとグローバル権限列。 MySQL は、user
テーブルを使用して、ホストからの接続を受け入れるか拒否します。 user
テーブルで付与された権限は、MySQL サーバー上のすべてのデータベースに対して有効です。
db
テーブル: データベースレベルの権限が含まれます。 MySQL はデータベース テーブルを使用して、ユーザーがアクセスできるデータベースとホストを決定します。 db
テーブルのデータベース レベルで付与された権限は、tables
、triggers
、views## など、すべてのオブジェクトが属するデータベースに適用されます。 、
ストアド プロシージャ など。
table_priv テーブルと
columns_priv テーブル: テーブル レベルと列レベルの権限が含まれます。
table_priv テーブルで付与された権限はテーブルとその列に適用されますが、c
olumns_priv テーブルで付与された権限はテーブルの特定の列にのみ適用されます。
procs_privテーブル: ストアド関数とストアド プロシージャの権限が含まれています。
MySQL はこれらのテーブルを使用して、MySQL データベース サーバーの権限を制御します。独自の柔軟なアクセス制御システムを実装する前に、これらのテーブルを理解することが重要です。
以上がMySQL アクセス制御システムの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。