MySQL データベース権限テーブルには次のものが含まれます: 1. ユーザー テーブル、サーバーへの接続を許可されたアカウント情報を記録するために使用されます。このテーブルで有効になっているすべての権限はグローバル レベルであり、すべてのデータベースに適用されます。2. db テーブル、ストア特定のデータベースに対するユーザーの操作権限、3. tables_priv テーブル、単一テーブルの権限の設定に使用、4. columns_priv テーブル、単一データ列の権限の設定に使用、5. procs_priv テーブル、ストレージ プロシージャおよびストアド ファンクションに使用権限を設定します。
このチュートリアルのオペレーティング システム: Windows 10 システム、mysql バージョン 8.0、Dell G3 コンピューター。
MySQL データベースでは、権限テーブルには user テーブル、db テーブル、tables_priv テーブル、columns_priv テーブル、および procs_priv テーブルが含まれます。
1. ユーザー権限テーブル
ユーザー テーブルは MySQL で最も重要な権限テーブルであり、接続を許可されているアカウント情報を記録するために使用されます。サーバ。ユーザー テーブルで有効になっているすべての権限はグローバルであり、すべてのデータベースに適用されることに注意してください。
ユーザー テーブルのフィールドは、ユーザー列、権限列、セキュリティ列、リソース制御列の 4 つのカテゴリに大別できます。
ユーザー列
ユーザー列には、ユーザーが MySQL データベースに接続するときに入力する必要がある情報が保存されます。 MySQL 5.7 バージョンではパスワード フィールドとして Password が使用されなくなり、authentication_string に変更されたことに注意してください。
権限列
権限列のフィールドはユーザーの権限を決定し、グローバル スコープ内のデータおよびデータベースに対して許可される操作を記述するために使用されます。
権限は、高度な管理権限と通常の権限の 2 つのカテゴリに大別されます。
高度な管理権限は、サービスを閉じる権限など、主にデータベースを管理します。スーパー権限と読み込みユーザーなど;
通常の権限は、クエリ権限、変更権限など、主にデータベースを操作します。
ユーザー テーブルの権限列には、Select_priv、Insert_priv、および priv で終わるその他のフィールドが含まれます。これらのフィールド値のデータ型は ENUM です。使用可能な値は次のとおりです。 Y および N: Y はユーザーを表します。対応する権限が存在します。N は、ユーザーが対応する権限を持っていないことを意味します。セキュリティ上の理由から、これらのフィールドのデフォルト値は N です。
権限を変更する場合は、GRANT ステートメントを使用してユーザーに一部の権限を付与するか、UPDATE ステートメントでユーザー テーブルを更新して権限を設定できます。
セキュリティ列
セキュリティ列は主に、ユーザーが正常にログインできるかどうかを判断するために使用されます。ユーザー テーブルのセキュリティ列は次の表に示すとおりです。
フィールド名 | フィールド タイプ | 空かどうか | デフォルト値 | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ssl_type | enum('','ANY','X509','SPECIFIED') | いいえ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
blob | NO | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
blob | NO | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
blob | NO | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
char(64) | NO | mysql_native_password | ユーザー接続時のパスワード検証用プラグインの導入、プラグインは外部/プロキシ ユーザーを作成します | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enum('N','Y') | NO | N | パスワードの有効期限が切れているかどうか (N は期限切れではない、y は期限切れである) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
timestamp | YES |
##パスワードが最後に変更された時刻を記録します |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
smallint (5) unsigned | YES |
パスワードの有効期間を日数で設定します |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
enum('N','Y') | NO | N | ユーザーがロックされているかどうか (Y はロックされている、N はロックされていない) ) |
フィールド名 | フィールドタイプ | 空かどうか | デフォルト値 | 説明 |
---|---|---|---|---|
max_questions | int(11) unsigned | NO | 0 | 1 時間あたりに許可されるクエリ操作の数を指定します |
max_updates | int(11) unsigned | NO | 0 | 1 時間あたりに許可される更新操作の数を指定します |
max_connections | int(11) unsigned | NO | 0 | 1 時間あたりに許可される接続操作の数を指定します |
max_user_connections | int(11) unsigned | NO | 0 | 同時に確立できる接続の数を指定します |
上記のフィールドのデフォルト値は 0 で、制限がないことを示します。ユーザーのクエリまたは接続の数が 1 時間以内にリソース制御の制限を超えると、ユーザーはロックされ、次の 1 時間までここで対応する操作を実行できなくなります。これらのフィールドの値は、GRANT ステートメントを使用して更新できます。
2. db テーブル
db テーブルは一般的に使用され、MySQL データベースの非常に重要な権限テーブルです。このテーブルには、特定のユーザーの操作権限が保存されます。データベース。テーブル内のフィールドは、ユーザー列と権限列の 2 つのカテゴリに大別できます。
ユーザー列
db テーブルのユーザー列には、Host、User、Db の 3 つのフィールドがあり、特定のホストから特定のデータベースに接続するためのユーザーの操作権限を識別します。これら 3 つのフィールド フィールドの組み合わせが db テーブルの主キーを構成します。
db テーブルのユーザー リストは次の表のとおりです。
フィールド名 | フィールド タイプ | 空ですか? | デフォルト値 | 説明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ホスト | char(60) | NO | なし | #ホスト名|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
##NO | #なしデータベース名 | ユーザー | char(32) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
なし | ユーザー名 |
フィールド名 | フィールドの種類 | 空かどうか | デフォルト値 | 説明 |
---|---|---|---|---|
ホスト | char(60) | NO | なし | ホスト |
Db | char(64) | NO | None | データベース名 |
ユーザー | char(32) | NO | None | ユーザー名 |
テーブル名 | char (64) | NO | なし | テーブル名 |
付与者 | char(93) | NO | なし | このレコードを変更したユーザー |
タイムスタンプ | タイムスタンプ | NO | CURRENT_TIMESTAMP | レコードを変更する時間 |
Table_priv | set('Select','Insert','Update ' ,'削除',' 作成','ドロップ','許可','参照', 'インデックス','変更','ビューの作成','ビューの表示','トリガー') |
NO | None | 選択、挿入、更新、削除、作成、削除、付与、参照、インデックス、変更などのテーブルに対する操作権限を示します。 . |
Column_priv | set('選択','挿入','更新','参照') | NO | なし | 選択、挿入、更新、参照など、テーブル内の列に対する操作権限を示します |
4. columns_priv テーブル
columns_priv テーブルは、単一のデータ列 に対する権限を設定するために使用されます。 columns_priv テーブル構造は次の表に示すとおりです。
フィールド名 | フィールド タイプ | 空かどうか | デフォルト値 | 説明 |
---|---|---|---|---|
Host | char(60) | NO | No | ホスト |
Db | char(64) | NO | None | データベース名 |
ユーザー | char(32) | NO | なし | ユーザー名 |
Table_name | char(64) | NO | None | テーブル名 |
Column_name | char(64) | NO | None | どのデータ列に操作権限があるかを指定するために使用されるデータ列名 |
タイムスタンプ | タイムスタンプ | NO | CURRENT_TIMESTAMP | このレコードの時刻を変更します |
Column_priv | set('Select','Insert','Update','References') | NO | None | を示します。表の列 操作権限 (選択、挿入、更新、参照を含む) |
5. procs_priv テーブル
procs_priv テーブルでは、ストアド プロシージャとストアド関数に対する権限を設定できます。procs_priv のテーブル構造は次の表のとおりです。
フィールド名 | フィールドの種類 | 空かどうか | デフォルト値 | 説明 |
---|---|---|---|---|
ホスト | #char(60)#NO | なし | #ホスト名Db | |
NO | None | データベース名 | #ユーザー | |
NO | なし | ユーザー名 | ルーチン名 | |
NO | None | ストアド プロシージャまたは関数の名前を示します | Routine_type | |
NO | None | は、ストアド プロシージャまたは関数のタイプを示します。Routine_type フィールドには 2 つの値があります。 、つまり FUNCTION と PROCEDURE です。 FUNCTION はこれが関数であることを示し、PROCEDURE はこれが | ストアド プロシージャであることを示します。
Grantor |
|
NO | None | このレコードを挿入または変更したユーザー | Proc_priv | |
NO | なし | は、実行、ルーチン変更、付与などの権限を示します。 # #CURRENT_TIMESTAMP | はレコード更新時刻を示します |
以上がmysqlデータベースの権限テーブルとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。