ホームページ  >  記事  >  データベース  >  mysqlにはユーザーテーブルがありますか?

mysqlにはユーザーテーブルがありますか?

青灯夜游
青灯夜游オリジナル
2022-02-24 18:43:572930ブラウズ

Mysql にはユーザー テーブルがあります。ユーザー テーブルは MySQL の権限テーブルで、サーバーへの接続を許可するアカウント情報を記録するために使用されます。ユーザー テーブルのフィールドは、ユーザー カラム、権限カラム、セキュリティ カラム、リソース制御の 4 つのカテゴリに大別できます。列。

mysqlにはユーザーテーブルがありますか?

このチュートリアルの動作環境: Windows7 システム、mysql5.7 バージョン、Dell G3 コンピューター。

mysql にはユーザー テーブルがあります。

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

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

ユーザー列

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

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

#ホスト名ユーザーchar(32)NOなしユーザー名認証文字列テキストYESなしパスワード

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

権限列

権限列のフィールドはユーザーの権限を決定し、許可されるデータおよびデータベースに対する権限を説明するために使用されます。グローバルに運営しています。

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

  • 高度な管理権限は、サービスを閉じる権限など、主にデータベースを管理します。スーパー権限と読み込みユーザーなど;

  • 通常の権限は、クエリ権限、変更権限など、主にデータベースを操作します。

ユーザー テーブルの権限列には、Select_priv、Insert_priv、および priv で終わるその他のフィールドが含まれます。これらのフィールド値のデータ型は ENUM です。使用可能な値は次のとおりです。 Y および N: Y はユーザーを表し、対応する権限が存在します。N は、ユーザーが対応する権限を持たないことを意味します。セキュリティ上の理由から、これらのフィールドのデフォルト値は N です。

テーブル 1: ユーザー テーブルのユーザー列
フィールド名 フィールド タイプ 空ですか デフォルト値 説明
ホスト char(60) NO なし
##Select_privenum('N','Y')NONSELECT コマンドを使用してデータをクエリできるかどうかInsert_privenum('N','Y')NONINSERT コマンドを通じてデータを挿入できるかどうかUpdate_privenum('N ','Y' )NONUPDATE コマンドを使用して既存のデータを変更できますか?Delete_privenum ('N','Y')NONDELETE コマンドを使用して既存のデータを削除できますか?## Create_privDrop_privReload_privShutdown_privProcess_privFile_priv Grant_privReferences_privIndex_privAlter_privShow_db_privSuper_privCreate_tmp_table_privLock_tables_privExecute_privRepl_slave_privRepl_client_priv Create_view_privShow_view_privCreate_routine_privAlter_routine_privCreate_user_priv Event_privTrigger_privCreate_tablespace_priv

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

セキュリティ列

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

表 2: ユーザー テーブルの権限列
フィールド名 フィールド タイプ 空かどうか デフォルト値 説明
enum('N','Y') NO N 新しいデータベースとテーブルを作成できます
enum('N','Y') NO N できますか既存のデータベースとテーブルを削除しますか?
enum('N','Y') NO N ログ、権限、ホスト、クエリ、テーブルなど、MySQL で使用されるさまざまな内部キャッシュを更新および再ロードする特定のコマンドを実行することは可能ですか
enum( 'N','Y') NO N MySQL サーバーをシャットダウンできるかどうか。この権限を root アカウント以外のユーザーに付与する場合は、細心の注意を払う必要があります。
enum('N','Y') NO N SHOW PROCESSLIST コマンドを使用して他のユーザーのプロセスを確認できますか?
enum (' N','Y') NO N SELECT INTO OUTFILE および LOAD DATA INFILE コマンドを実行できるかどうか
enum('N','Y') NO N 自分の権限を他のユーザーに付与できますかユーザー?
enum('N','Y') NO N 外部キー制約を作成できます
enum('N','Y') NO N インデックスの追加・削除チェックが可能かどうか
enum('N','Y') NO N テーブル構造の名前変更と変更は可能ですか
enum('N', 'Y') NO N ユーザーが十分なアクセス権を持っているデータベースを含む、サーバー上のすべてのデータベースの名前を表示することは可能ですか
enum('N','Y') NO N それがあるかどうかKILL コマンドによるユーザー プロセスの削除など、いくつかの強力な管理機能を実行することが可能です。SET GLOBAL コマンドは、グローバル MySQL 変数を変更し、レプリケーションとロギングに関するさまざまなコマンドを実行します。 (スーパー権限)
enum('N','Y') NO N 一時テーブルを作成することは可能ですか
enum('N','Y') NO N LOCK TABLES コマンドを使用してテーブルへのアクセス/変更を防ぐことは可能ですか
enum('N' ,'Y') NO N ストアド プロシージャを実行できますか?
enum('N',' Y') NO N レプリケートされたデータベース環境を維持するために使用されるバイナリ ログ ファイルを読み取ることはできますか?
enum('N','Y') NO N それは可能ですか?レプリケーション スレーブ サーバーとマスター サーバーの場所を決定します
enum('N','Y') NO #ビューを作成できますか?
enum('N','Y') NO N はい view を表示できます
enum('N','Y') NO N ストアド プロシージャと関数を変更または破棄できるかどうか
enum(' N','Y') NO N ストアド関数と関数を変更または削除できるかどうか
enum('N','Y') NO N 使用される CREATE USER コマンドを実行できるかどうか新しい MySQL アカウントを作成するには
enum('N','Y') NO N イベントを作成、変更、削除できるかどうか
enum('N','Y') NO N トリガーを作成および削除できるかどうか
enum('N','Y') NO N テーブルを作成できますか? space
表 3: ユーザー テーブルのセキュリティ列
フィールド名 フィールド タイプ 空ですか デフォルト値 説明
ssl_type enum('','ANY','X509', '指定') NO SSL 標準暗号化セキュリティ フィールドをサポート
ssl_cipher blob NO SSL 標準暗号化セキュリティ フィールドをサポート
x509_issuer blob NO x509 標準フィールドのサポート
x509_subject blob NO x509 標準フィールドのサポート
plugin char(64) NO mysql_native_password プラグインの導入ユーザーの接続時にパスワード検証を実行するために、プラグインは外部/プロキシ ユーザーを作成します
password_expired enum('N','Y') NO N パスワードの有効期限が切れているかどうか (N は期限切れではない、y は期限切れである)
password_last_changed timestamp YES パスワードが最後に変更された時刻を記録します
password_lifetime smallint(5) unsigned YES パスワードの有効期間を日数で設定します
account_locked enum('N','Y ') NO N ユーザーがロックされているかどうか (Y ロック、N ロック解除)

注:password_expired が「Y」の場合でも、ユーザーはそのパスワードを使用して MySQL にログインできますが、操作は許可されません。

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

リソース コントロール列

リソース コントロール列のフィールドは、ユーザーが使用するリソースを制限するために使用されます。 user テーブルは表 4 に示すとおりです。

#max_questions#max_updatesint(11) unsignedint(11) unsignedint(11) unsigned上記のフィールドのデフォルト値は 0 で、制限がないことを示します。ユーザーのクエリまたは接続の数が 1 時間以内にリソース制御制限を超えると、ユーザーはロックされ、次の 1 時間までここで対応する操作を実行できなくなります。これらのフィールドの値は、GRANT ステートメントを使用して更新できます。 [関連する推奨事項:
表 4: ユーザー テーブルのリソース制御列
フィールド名 フィールド タイプ 空ですか デフォルト値 説明
#int(11) unsigned NO 0 1 時間あたりに許可されるクエリ操作の数を指定します
##NO 0 1 時間あたりに許可される更新操作の数を指定します max_connections
NO 0 1 時間あたりに許可される接続操作の数を指定します max_user_connections
NO 0 同時に確立できる接続の数を指定します
mysql ビデオ チュートリアル

]

以上がmysqlにはユーザーテーブルがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。