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

推薦する

Vue 円形パーセンテージ プログレスバー コンポーネントの機能の実装

必要な方はどなたでも参考にしてください。試してみて問題が見つかった場合は、メッセージを残してお知らせ...

alpineをベースにdockerfileで作成したtomcatイメージの実装

1.アルパインイメージをダウンロードする [root@docker43 ~]# docker pul...

CSS3を使用してトランジションとアニメーション効果を実現する

JS アニメーションの代わりに CSS アニメーションを使用する必要があるのはなぜですか? Java...

HTML 5 ワーキングドラフトの謎を解く

World Wide Web Consortium (W3C) は、HTML 5 仕様のドラフトをリ...

CSS フィルターを使用してマウスオーバー効果を記述する例

CSSフィルターを使用してマウスオーバー効果を記述する <div class="fi...

Linux の crw、brw、lrw などのファイル属性は何ですか?

ファイルとは何ですか?すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると...

Docker tomcatのメモリサイズを設定する方法

Docker に Tomcat をインストールする場合、大きなファイルをダウンロードするときなど、場...

Webpack プロジェクトでローダー プラグインをデバッグする方法

最近、webpackの使い方を学んでいたときに、webpack-replace-loaderの設定正...

CSS でフロートとマージンを混合するサンプルコード

最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れて...

MySQL 8.0.24 バージョンのインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.24バージョンのインストールと設定方法を記録し、皆さんと共有しますM...

カラーブロックレポート効果の動的な表示を実現する HTML (サンプルコード)

HTMLカラーブロックを使用してデータを動的に表示する <スタイル タイプ="te...

CentOS での Docker の詳細なインストール チュートリアル

DockerにはCEとEEがあり、CE版はコミュニティ版(無料)、EE版はセキュリティを重視したエン...

MySQLはbinlogを通じてデータを復元する

目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...

Vue を使用してパブリック アカウントの Web ページを開発する方法

目次プロジェクトの背景始めるvue-cliでプロジェクトを作成するモバイル適応についてnormali...

MySQL の Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する思い出させるMySQLコンテナコマンドを...