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 を使用する方法

推薦する

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...

一般的な Linux ディストリビューションのミラーソース構成の概要

最近 Linux を研究していて、いくつかの Linux ディストリビューションを試してみましたが、...

.htaccess を使用して特定の IP からの Web サイトへのアクセスを禁止する方法

序文コストを考慮して、ほとんどのウェブマスターは、多数の小規模なウェブサイト用にサーバーを個別に購入...

Flex モバイルレイアウトにおけるシングルラインレイアウトとダブルラインレイアウトの違いと使い方

レイアウトにul>liを使用した単一行レイアウトを以下に示します。 <ul class=...

JS配列ループ方式と効率分析の比較

配列メソッドJavaScript には多くの配列メソッドが用意されています。次の図は、ほとんどの配列...

VUE+SpringBootはページング機能を実装します

この記事では主に、Vue + SpringBoot でページ分割されたリストデータを実装する方法を紹...

Dockerコンテナ内の設定ファイルの変更の実装

1. コンテナに入るdocker run [オプション] イメージ名 [起動コンテナに渡されるコマン...

Dockerの高可用性構成の詳細な説明

Docker の作成Docker Compose は、管理対象コンテナをプロジェクト、サービス、コン...

MySQL データベースの基礎 SQL ウィンドウ関数の例の分析チュートリアル

目次導入導入集計関数 + over()ソート関数 + over() ntile() 関数 + ove...

MySQL の文字セットの不一致によって発生する異常な接続テーブルの解決方法

目次1. 解決策2. MySQLの文字セット文字セット検証ルール次のように簡単なテーブルクエリを実行...

Nginx 経由で Tomcat9 クラスターを構築し、セッション共有を実現する

Nginx を使用して Tomcat9 クラスターを構築し、Redis を使用してセッション共有を実...

Linuxは、単一のIPをバインドするためにデュアルネットワークカードを実装するためにボンドを使用します。サンプルコード

ネットワークの高可用性を実現するには、複数のネットワーク カードを仮想ネットワーク カードにバインド...

Tomcat Nginx Redis セッション共有プロセス図

1. 準備ミドルウェア: Tomcat、Redis、Nginx Jar パッケージ: commons...

MySQL で時刻と日付の型を保存する際の選択問題を分析する

一般的なアプリケーションでは、timestamp、datetime、int 型を使用して時間形式を保...

非常に詳細な MySQL8.0.22 のインストールと設定のチュートリアル

みなさんこんにちは。今日は、MySQL 8.0.22 のインストールと構成について学習します。注意深...