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

推薦する

HTML テーブル マークアップ チュートリアル (4): 境界線の色属性 BORDERCOLOR

テーブルを美しくするために、テーブルにさまざまな境界線の色を設定できます。基本的な構文<テーブ...

ウェブページのアクセス速度に関する主な問題と解決策

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

Centos7でポートを開く方法

CentOS7 のデフォルトのファイアウォールは iptables ではなく、firewalle で...

VMware Workstation 仮想マシンのインストール操作方法

仮想マシンは非常に便利なテストソフトウェアです。ハードウェアに損傷を与えることなく、さまざまなテスト...

Linuxで環境変数を削除する詳細な手順

Linuxで環境変数を削除するには?unsetコマンドを使用してすぐに削除します1. Linuxクラ...

Win10 での MySQL 8.0.16 のインストールと設定のチュートリアル

1. MySQL 8.0.16を解凍する次の図に示すように、解凍後にdadaフォルダとmy.ini構...

MySQL Community Server 5.7.16 のグリーン バージョンをインストールしてリモート ログインを実装する方法

1. MySQL Community Server 5.7.16をダウンロードしてインストールします...

Vue でのスロット配置と使用状況分析

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

mysqlパラメータsql_safe_updatesを使用して更新/削除範囲を制限する方法の詳細な説明

序文皆さんご存知のとおり、MySQL の運用・保守において、更新/削除条件が誤っているためにデータが...

Portainer を使用して Docker のビジュアル インターフェースを構築する方法

ポーテナーの紹介Portainer は、ステータス表示パネル、アプリケーション テンプレートの迅速な...

Centos7 ベースの Varnish キャッシュ プロキシ サーバーを展開する

1. ワニスの概要1. ワニスの紹介Varnish は、新しいソフトウェア アーキテクチャを使用し、...

docker を使用して Windows 10 Home バージョンで Laravel 開発環境を構築する方法の詳細なチュートリアル

オペレーティング·システム: Win10 ホームエディションDockerをインストールします:公式サ...

JavaScript のデシェイクとスロットリングの例

目次安定スロットル: 手ぶれ防止: 一定時間内に最後のタスクのみを実行します。スロットル: 一定期間...

Redo ログと Undo ログに基づく MySQL クラッシュ回復の分析

目次MySQLクラッシュ回復プロセス1. ブラックボックス下のデータフローを更新する2. やり直しロ...