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 におけるシリアル操作と並列操作

推薦する

JavaScript スコープチェーンの基本原理のグラフィカルな説明

目次序文範囲1. スコープとは何ですか? 2. [[スコープ]] プロパティ3. スコープチェーン4...

Vueは透かし効果を簡単に実現します

序文: Vueプロジェクトで透かし効果を使用するには、コンテナを指定できます効果画像: 1. コンテ...

Vueモバイル端末が指のスライド効果を実現

この記事の例では、Vueモバイル端末で指のスライド効果を実現するための具体的なコードを紹介します。具...

最小限のルートファイルシステムを構築するためにbusyboxを移植するための詳細な手順

Busybox: 小さなコマンドが詰まったスイスアーミーナイフ。ステップ1: ディレクトリ構造を作成...

DockerはCMDまたはENTRYPOINTコマンドを使用して複数のサービスを同時に起動します

要件: Celery は Django に導入されています。Django プロジェクトを開始するとき...

CSS3 マウスホバー遷移ズーム効果

以下は、純粋な CSS で記述された画像マウスホバーズーム効果です。実際、基本原理は非常に単純です。...

Vue の基本的な手順の例のグラフィック説明

目次1. v-on指令1. 基本的な使い方2. 糖衣構文3. イベントパラメータ4. イベント修飾子...

MySQL ファジークエリステートメントコレクション

SQL ファジークエリステートメント一般的なファジーステートメントの構文は次のとおりです。 SELE...

Linux CentOS 6.5 のアンインストール、tar、および MySQL のインストールチュートリアル

システム提供のMySQLをアンインストールする1. MySQLがシステムにインストールされているかど...

Nginx リバース プロキシ学習例チュートリアル

目次1. リバースプロキシの準備1. LinuxシステムにTomcatをインストールする2. Tom...

ホバー生成の境界線によって生じる要素の移動を解決する方法

序文hover疑似クラスが要素に境界線を追加すると、要素内のコンテンツがずれることがあります。box...

type="file" の入力ボックスのスタイル変更の概要

入力タイプ「file」とは何ですか?これが何なのかは説明する必要はないと思います。誰もが知っているこ...

JavaScript が Jingdong の虫眼鏡効果を模倣

この記事では、Jingdongの虫眼鏡効果を実現するためのJavaScriptの具体的なコードを紹介...

Vue+Bootstrapでシンプルな学生管理システムを実現

参考までに、vueとbootstrapを使って比較的シンプルな生徒管理システムを作りました。具体的な...