MySQLユーザー権限テーブルについての簡単な説明

MySQLユーザー権限テーブルについての簡単な説明

MySQL はインストール時に自動的に mysql という名前のデータベースを作成します。mysql データベースにはユーザー権限テーブルが保存されます。ユーザーがログインすると、MySQL はこれらの権限テーブルの内容に基づいて各ユーザーに対応する権限を付与します。

ユーザー テーブルは MySQL で最も重要な権限テーブルであり、サーバーへの接続が許可されたアカウント情報を記録するために使用されます。ユーザー テーブルで有効になっているすべての権限はグローバルであり、すべてのデータベースに適用されることに注意してください。

ユーザー テーブルのフィールドは、ユーザー列、権限列、セキュリティ列、リソース制御列の 4 つのカテゴリに大別できます。以下では、主にこれらのフィールドの意味を紹介します。

ユーザー列

ユーザー列には、ユーザーが MySQL データベースに接続するときに入力する必要がある情報が格納されます。 MySQL 5.7 バージョンでは、パスワード フィールドとして Password が使用されなくなり、authentication_string に変更されたことに注意してください。

MySQL 5.7 のユーザー リストを表 1 に示します。

フィールド名フィールドタイプ空ですか?デフォルト値例示する
ホスト文字(60)いいえなしホスト名
ユーザー文字(32)いいえなしユーザー名
認証文字列文章はいなしパスワード

表1: ユーザーテーブルのユーザー列

ユーザーがログインすると、MySQL データベース システムは、これら 3 つのフィールドが同時に一致する場合にのみユーザーのログインを許可します。新しいユーザーを作成すると、これら 3 つのフィールドの値も設定されます。ユーザーのパスワードを変更すると、実際にはユーザー テーブルの authentication_string フィールドの値が変更されます。したがって、これら 3 つのフィールドによって、ユーザーがログインできるかどうかが決まります。

権限列

権限列のフィールドはユーザーの権限を決定し、データとデータベースに対してグローバルに許可される操作を記述するために使用されます。

権限は、高度な管理権限と通常の権限の 2 つのカテゴリに大まかに分けられます。

  • 高度な管理権限は、主にサービスのシャットダウン、スーパー権限、ユーザーの読み込みなどのデータベースを管理します。
  • 通常の権限は、クエリ権限、変更権限など、主にデータベースを操作する権限です。

ユーザー テーブルの権限列には、Select_priv、Insert_priv、および priv で終わるその他のフィールドが含まれます。これらのフィールド値のデータ型は ENUM で、可能な値は Y と N のみです。Y はユーザーが対応する権限を持っていることを意味し、N はユーザーが対応する権限を持っていないことを意味します。セキュリティの観点から、これらのフィールドのデフォルト値はすべて N です。

フィールド名フィールドタイプ空ですか?デフォルト値例示する
選択_priv列挙型('N','Y')いいえいいえSELECT コマンドを使用してデータを照会することは可能ですか?
挿入_priv列挙型('N','Y')いいえいいえINSERT コマンドを使用してデータを挿入することは可能ですか?
更新_priv列挙型('N','Y')いいえいいえUPDATE コマンドを使用して既存のデータを変更することは可能ですか?
削除権限列挙型('N','Y')いいえいいえDELETE コマンドを使用して既存のデータを削除することは可能ですか?
作成_priv列挙型('N','Y')いいえいいえ新しいデータベースとテーブルを作成することは可能ですか?
ドロップ_priv列挙型('N','Y')いいえいいえ既存のデータベースとテーブルを削除することは可能ですか?
再読み込み_priv列挙型('N','Y')いいえいいえログ、権限、ホスト、クエリ、テーブルなど、MySQL が使用するさまざまな内部キャッシュをフラッシュして再ロードする特定のコマンドを実行することは可能ですか?
シャットダウン_priv列挙型('N','Y')いいえいいえMySQL サーバーをシャットダウンすることは可能ですか?この権限をルート アカウント以外のユーザーに付与する場合は、十分に注意してください。
プロセス特権列挙型('N','Y')いいえいいえSHOW PROCESSLIST コマンドを使用して他のユーザーのプロセスを表示することは可能ですか?
ファイル_priv列挙型('N','Y')いいえいいえSELECT INTO OUTFILE コマンドと LOAD DATA INFILE コマンドを実行することは可能ですか?
権限付与列挙型('N','Y')いいえいいえ自分の権限を他のユーザーに付与できますか?
参照_priv列挙型('N','Y')いいえいいえ外部キー制約を作成することは可能ですか?
インデックス_priv列挙型('N','Y')いいえいいえインデックスを追加、削除、クエリすることは可能ですか?
権限の変更列挙型('N','Y')いいえいいえ名前を変更したり、テーブル構造を変更することは可能ですか?
表示_db_priv列挙型('N','Y')いいえいいえユーザーが十分なアクセス権限を持っているデータベースも含め、サーバー上のすべてのデータベースの名前を表示することは可能ですか?
スーパー特権列挙型('N','Y')いいえいいえKILL コマンドを使用してユーザー プロセスを削除したり、SET GLOBAL コマンドを使用してグローバル MySQL 変数を変更したり、レプリケーションやログ記録に関連するさまざまなコマンドを実行したりするなど、強力な管理機能を実行することは可能ですか? (超権威)
_tmp_table_priv を作成する列挙型('N','Y')いいえいいえ一時テーブルを作成することは可能ですか?
ロックテーブル特権列挙型('N','Y')いいえいいえLOCK TABLESコマンドを使用してテーブルへのアクセス/変更をブロックすることは可能ですか?
実行権限列挙型('N','Y')いいえいいえストアド プロシージャは実行できますか?
Repl_slave_priv列挙型('N','Y')いいえいいえ複製されたデータベース環境を維持するために使用されるバイナリ ログ ファイルを読み取ることはできますか?
Repl_client_priv列挙型('N','Y')いいえいいえレプリケーションスレーブサーバーとマスターサーバーの場所を特定することは可能ですか?
作成_view_priv列挙型('N','Y')いいえいいえビューを作成することは可能ですか?
表示権限を表示列挙型('N','Y')いいえいいえ景色を見ることは可能ですか
ルーチン権限の作成列挙型('N','Y')いいえいいえストアド プロシージャと関数を変更または破棄できますか?
ルーチン権限の変更列挙型('N','Y')いいえいいえ保存された関数や機能を変更または削除できますか?
ユーザー権限の作成列挙型('N','Y')いいえいいえ新しい MySQL アカウントを作成するために使用される CREATE USER コマンドを実行することは可能ですか?
イベント_priv列挙型('N','Y')いいえいいえイベントを作成、変更、削除できますか?
トリガー特権列挙型('N','Y')いいえいいえトリガーを作成および削除することは可能ですか?
テーブルスペースの権限の作成列挙型('N','Y')いいえいいえテーブルスペースを作成できますか?

表2: ユーザーテーブルの権限列

権限を変更する場合は、GRANT ステートメントを使用してユーザーに権限を付与するか、UPDATE ステートメントを使用してユーザー テーブルを更新して権限を設定できます。

セキュリティコラム

セキュリティ列は主に、ユーザーが正常にログインできるかどうかを判断するために使用されます。ユーザー テーブルのセキュリティ列を表 3 に示します。

フィールド名フィールドタイプ空ですか?デフォルト値例示する
SSLタイプenum('','ANY','X509','指定済み')いいえSSL標準暗号化セキュリティフィールドをサポート
SSL暗号ブロブいいえSSL標準暗号化セキュリティフィールドをサポート
x509_発行者ブロブいいえx509標準フィールドをサポート
x509_件名ブロブいいえx509標準フィールドをサポート
プラグイン文字(64)いいえmysql_ネイティブパスワードユーザーが接続する際のパスワード検証用のプラグイン、外部/プロキシユーザーを作成するためのプラグインを導入する
パスワードの期限切れ列挙型('N','Y')いいえいいえパスワードの有効期限が切れているかどうか(N: 期限切れではない、y: 期限切れ)
パスワード最終変更タイムスタンプはいパスワードが最後に変更された時刻を記録する
パスワードの有効期間smallint(5) 符号なしはいパスワードの有効期間を日数で設定します
アカウントがロックされました列挙型('N','Y')いいえいいえユーザーがロックアウトされているかどうか(ロックアウトされている場合は Y、ロック解除されている場合は N)

表3: ユーザーテーブルのセキュリティ列

注意: password_expired が「Y」の場合でも、ユーザーはパスワードを使用して MySQL にログインできますが、何も実行できません。

通常、標準ディストリビューションは SSL をサポートしていません。読者は、SHOW VARIABLES LIKE "have_openssl" ステートメントを使用して、SSL 機能があるかどうかを確認できます。 have_openssl の値が DISABLED の場合、SSL 暗号化はサポートされません。

リソース制御列

リソース制御列のフィールドは、ユーザーが使用するリソースを制限するために使用されます。ユーザー テーブルのリソース制御列を表 4 に示します。

フィールド名フィールドタイプ空ですか?デフォルト値例示する
最大質問数int(11) 符号なしいいえ0 1時間あたりに許可されるクエリ操作の数を指定します
最大更新回数int(11) 符号なしいいえ0 1時間あたりに許可される更新操作の数を指定します
最大接続数int(11) 符号なしいいえ0 1時間あたりに許可される接続操作の数を指定します
最大ユーザー接続数int(11) 符号なしいいえ0許可される同時接続数を指定します

表4: ユーザーテーブルのリソース制御列

上記のフィールドのデフォルト値は 0 で、制限がないことを意味します。 1 時間以内にユーザークエリまたは接続の数がリソース制御制限を超えると、ユーザーはロックアウトされ、次の 1 時までここで対応する操作しか実行できなくなります。 GRANT ステートメントを使用してこれらのフィールドの値を更新できます。

これで、MySQL ユーザー権限テーブルに関する記事は終了です。MySQL ユーザー権限テーブルの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL ユーザー権限管理の実装
  • MySQLユーザー権限管理の詳細な説明
  • MySQL 権限制御の詳細分析
  • MySQL 権限制御の詳細な説明
  • MySQLでユーザーを作成し、ユーザーに権限を付与する方法の詳細なチュートリアル
  • MySQL ストアド プロシージャ関連の権限変更の問題
  • MySQL 8.0 でリモートアクセス権限を設定する方法
  • MySQL 権限とデータベース設計のケーススタディ

<<:  HTML CSS JS はタブページのサンプルコードを実装します

>>:  JavaScript におけるシリアル操作と並列操作

推薦する

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

Vue Element フロントエンドアプリケーション開発開発環境の準備

目次概要1. 必要なソフトウェア環境を開発する1) VSコードのインストール2) ノード開発環境をイ...

JavaScript を使用した Web 計算機の作成

この記事は主にJavaScriptを使用してWeb計算機を実現する効果を記録し、参考として掲載してい...

ウェブページ制作と饅頭の関係(体験の共有)

昨日は遅くまで寝ていて、一日中起きていました。私の年齢では、夜更かしして本を書くのはもう無理のようで...

CSS ピクセルとさまざまなモバイル画面適応の問題に対する解決策

ピクセル解決通常、モニター解像度と呼ばれるものは、実際にはモニターの物理的な解像度ではなく、デスクト...

JSデータ型検出のさまざまな方法の概要

目次背景データ型を決定する方法は何ですか? 1. typeof を使用して基本データ型を決定します。...

MySQL マスタースレーブレプリケーションと読み取り書き込み分離の詳細な説明

目次序文1. 概要2. 読み取りと書き込みの分離3. MySQL マスタースレーブレプリケーションの...

Tomcatのサーバーオプションの詳細な説明

1. 構成デフォルトでは、最初の 2 つはチェックされていないので、チェックする必要があります。 (...

デカルト積原理を使用してMySQLで複数のテーブルをクエリする方法を簡単に説明します。

MySQL マルチテーブルクエリ (直積原理)まず、データが使用するテーブルを決定します。デカルト...

mysql8.0 Windows x64 zip パッケージのインストールと構成のチュートリアル

MySQL 8 Windows版 zipインストール手順(ダウンロードアドレス) 1. ZIPファイ...

入力ボックスのプレースホルダーアニメーションと入力検証を実現する純粋なCSS

さらに興味深いコンテンツについては、https://github.com/abc-club/free...

MySQL InnoDB のトランザクション特性を確保するにはどうすればよいですか?

序文「データベース トランザクションの特徴は何ですか?」と尋ねられたら、 ACID 特性である原子性...

MySQL 文字セットの文字化けとその解決方法

序文文字セットは、一連のシンボルとエンコード規則です。Oracle データベースでも MySQL デ...

JavaScript 関数のカリー化

目次1 関数カリー化とは何ですか? 2 カレーの役割と特徴2.1 パラメータの再利用2.2 早期復帰...

js SMS認証コード入力ボックスを手動で実装する

序文この記事では、私が手動で実装したフロントエンドの一般的な SMS 認証コード入力コンポーネントと...