MySQLユーザーと権限管理の詳細な説明

MySQLユーザーと権限管理の詳細な説明

この記事では、例を使用して MySQL ユーザーと権限の管理について説明します。ご参考までに、詳細は以下の通りです。

ユーザーは MySQL に接続し、さまざまなクエリを実行できます。これらはすべて、MySQL ユーザーと権限の機能によってバックグラウンドで管理されます。

ユーザーとデータベース サーバー間のデータ交換は、次の 2 つの段階に分かれています。

(1)接続する権限がありますか? (2)この操作を実行する権限がありますか?

1. 接続する権利がありますか?

サーバーは、ユーザーが接続する権限を持っているかどうかをどのように判断しますか?

に従って:

1) どこから来ましたか?ホスト
2) あなたは誰ですか?ユーザー
3) パスワードは何ですか?パスワード

ユーザーのこれら 3 つの情報は、MySQL データベースのユーザー テーブルに保存されます。

IPが接続できるようにホストドメインを変更する

mysql>ユーザーを更新し、ホストを '192.168.137.123' に設定します。ここで、ユーザーは 'root' です。
mysql>権限をフラッシュ; -- 権限をフラッシュする

ユーザーパスワードの変更

mysql>ユーザーを更新し、パスワードをpassword('11111111')に設定します。ここでxxx;
mysql>権限をフラッシュ; -- 権限をフラッシュする

2. この操作を実行する権限がありますか?

MySQL には、MySQL ライブラリと呼ばれるライブラリがあります。このライブラリには 3 つのテーブルがあり、そのうちの 1 つはユーザー テーブルで、すべてのユーザーの権限情報が格納されます。 1 つは db テーブルで、データベース層にあるすべてのユーザーの権限情報を保存します。 1 つは tables_priv テーブルで、テーブル レベルですべてのユーザーの権限情報を保存します。

ユーザーがログインすると、ユーザー テーブルはまずユーザー ログインを制限し、次にユーザーのグローバル権限も保存します。ユーザーに権限がない場合は、db テーブルを使用して、ユーザーが特定のデータベースを操作する権限を持っているかどうかを確認します。どちらも存在しない場合は、table_priv テーブルを使用して、ユーザーが特定のテーブルを操作する権限を持っているかどうかを確認します。権限がある場合、ユーザーは既存の権限に従ってテーブルを操作できます。

1) グローバルな承認と取り消し

グローバル認証形式:

'password' で識別される user@'host' に *.* の [権限 1、権限 2、権限 3] を付与します。

共通権限: すべて、作成、ドロップ、選択、挿入、削除、更新

承認:

ユーザー lisi を作成し、ホストを 192.168.191.% に設定します。% ワイルドカードは、192.168.191.xxx で終わるすべてのホストが接続できることを示します。パスワードは 12345678 です。

'12345678' で識別される lisi@'192.168.191.%' に *.* 上のすべての権限を許可します。

権限を取り戻す:

lisi@'192.168.191.%' から *.* 上のすべての権限を取り消します。

2) データベースレベルの承認と取り消し

要件: lisi ユーザーに mysqlmaster データベースのすべての操作権限を与える

承認:

mysqlmaster.* のすべての権限を、'12345678' で識別される lisi@'192.168.191.%' に付与します。

取り戻す:

mysqlmaster.* 上の lisi@'192.168.191.%' からすべての権限を取り消します。

3) テーブルレベルの承認と取り消し

要件: ユーザー lisi に、mysqlmaster データベースの goods テーブルに対する挿入、更新、および選択操作の権限を与えます。

承認:

mysqlmaster.goods に対する挿入、更新、選択権限を、'12345678' で識別される lisi@'192.168.191.%' に付与します。

取り戻す:

mysqlmaster.goods に対する lisi@'192.168.191.%' からの挿入、更新、選択を取り消します。

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL トランザクション操作スキル」、「MySQL ストアド プロシージャ スキル」、「MySQL データベース ロック関連スキルの概要」、および「MySQL 共通関数の概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • DCL を使用して MySQL でユーザーを管理し、権限を制御する方法
  • MySQLでユーザーを作成し、権限を管理する方法
  • MySQL ユーザー権限管理の分析例
  • MySQLのユーザーアカウント管理と権限管理の詳細な説明
  • MySQLのユーザー権限の確認と管理方法の詳細な説明
  • MySQLユーザー権限管理の詳細な説明
  • MySQL における基本的なユーザーおよび権限管理方法の概要
  • MySQLユーザー権限管理の詳細な説明

<<:  Node.jsはexpress-fileuploadミドルウェアを使用してファイルをアップロードします

>>:  Linux サーバー上のローカル静的リソースにアクセスするために nginx を使用する方法

推薦する

LeetCode の SQL 実装 (177. 給与が N 番目に高い)

[LeetCode] 177. 最も高い給与従業員テーブルからn番目に高い給与を取得する SQL ...

jQueryフレームワークは、要素の表示と非表示の3つのアニメーションメソッドを実装しています。

目次1. デフォルトで表示と非表示を切り替える2. スライドして表示と非表示を切り替える3. フェー...

DockerとFastDFSのインストールコマンドと使い方の詳しい説明

Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...

404エラーページを作成する際に注意すべき問題の簡単な分析

ウェブサイトを最適化するときは、エラー ページの使い方を学ぶ必要があります。たとえば、ウェブサイトに...

HTML で余分なテキストを省略記号に変換する方法

HTML で余分なテキストを省略記号として表示したい場合は、いくつかの方法があります。 1行テキスト...

データベースの削除から逃走までの MySQL の徹底分析_上級編 (I) - データ整合性

1. データ整合性の概要1. データ整合性の概要データの冗長性とは、データベース内に重複したデータが...

Linuxカーネルマクロcontainer_ofの詳細な分析

1. 前述の通り数年前、Linux ドライバーのコードを読んでいたときにこのマクロを見ました。長い間...

HTML で水平ナビゲーション構造を設定する方法

この記事では、主にリスト構造を使用して水平ナビゲーション構造を設定する 2 つの方法を紹介します。こ...

MySQL 最適化: キャッシュ最適化

何人かのブロガーが私の記事を評価してくれたのは嬉しいです。マークと知り合ってからは、私は彼をフォロー...

Linux での Tomcat8 のインストールとアンインストールに関する詳細なグラフィック チュートリアル

[ Tomcat8 の Linux インストール ] Tomcat をアンインストールする - まず...

MySQL サブクエリとグループ化されたクエリ

目次概要サブクエリサブクエリの分類クエリの結果によるとサブクエリの位置で区別する選択後のサブクエリサ...

MySQL explain クエリ命令情報の取得原理と例

explain はクエリ実行プラン情報を取得するために使用されます。 1. 文法次のように、sele...

vitrualBox+ubuntu16.04 python3.6 最新チュートリアルと詳細な手順のインストール

最近ディープラーニングを学ぶためにUbuntu+Python 3.6バージョンを使う必要があるため、...

MySQLへのJava接続の基礎となるカプセル化の詳細な説明

この記事では、Java接続MySQLの基礎となるカプセル化コードを参考までに紹介します。具体的な内容...

Vueは遅延読み込みによりページの応答速度を向上

目次概要遅延読み込みとは何ですか?最適化を開始するビジネスモジュールを分割する遅延読み込みルート構成...