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

推薦する

Linux ディスクデバイスと LVM 管理コマンドの詳細な例

序文Linux オペレーティング システムでは、デバイス ファイルは特別なタイプのファイルです。これ...

プライベートレジストリ内の画像を照会または取得する方法

Dockerはプライベートレジストリ内のイメージを照会または取得するために、 docker 検索 1...

特定のシンボルで複数の行と列に分割するMySQLの例

一部の障害コード テーブルでは、履歴またはパフォーマンス上の理由から、次の設計パターンが使用されます...

Docker を使用してフロントエンド アプリケーションをデプロイする方法

Dockerはますます普及しています。環境を軽量かつ柔軟に分離し、容量を拡張し、運用保守管理を容易に...

Linux ディスク クォータ管理のグラフィカルな例

ディスク クォータは、コンピューター内の指定されたディスクのストレージ制限です。つまり、管理者はユー...

Jenkins Docker 静的エージェント ノードのビルド プロセス

静的ノードはマシン上に固定されており、いくつかの固定コマンドを通じて起動されます。動的ノードには複数...

きちんとした標準的なHTMLタグの書き方を学ぶ

優れた HTML コードは美しい Web サイトの基礎となります。私が CSS を教えるときは、まず...

Vue.js スタイルレイアウト Flutter ビジネス開発共通スキル

シャドウスタイルにおけるフラッターとCSSの対応UIによって指定されたCSSスタイル 幅: 75px...

重複データの処理に関するMySQL学習ノート

MySQLは重複データを処理します一部の MySQL テーブルには重複レコードが含まれている場合があ...

HTML 内の input type="reset" タグが無効 (機能しない) である理由として考えられるもの。

<html:reset> タグを使用すると、リセット ボタンが無効になり、ボタンをクリッ...

MySQLデータベースに中国語の文字を保存するときに発生するエラーを解決する方法を教えます

目次1. 遭遇した問題2. 問題を分析する3. 本当の問題4. 解決策5. ソリューション効果1. ...

MySQL の where と on の違いと、いつ使用するか

以前、テーブル結合クエリを書いていたとき、whereとonの違いがわからず、SQLに小さな問題が発生...

Linux の権限管理コマンド (chmod/chown/chgrp/unmask) の詳細な説明

目次chmod例権限に関する特別な注意分析するチョーンchgrp umask Linux オペレーテ...

Linux システムファイル共有 samba 設定チュートリアル

目次sambaをアンインストールしてインストールする新しい共有パスを作成し、権限を設定するSamba...

LinuxのCentos7でmysql5.7.29を構築する詳細なプロセス

1. MySQLをダウンロードする1.1 ダウンロードアドレスhttps://downloads.m...