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

推薦する

CentOS7におけるKVM仮想化の基本管理の詳しい説明

1. kvm仮想化をインストールする : : : : : : : : : : : : : : : :...

CSS3を使用してオンラインライブ放送に似たキューアニメーションを実装する方法

以前、グループの友人が質問しました。つまり、ミニプログラムでユーザーがオンラインになったときに、ライ...

react-navigation6.xルーティングライブラリの基本的な使い方の詳しい説明

目次react-nativeプロジェクトの初期化react-nativeプロジェクトをインストールす...

flex-grow、flex-shrink、flex-basis、9グリッドレイアウトを理解する

1. flex-grow、flex-shrink、flex-basis プロパティflex-grow...

スクロールバーがスペースを占有することで発生するバグを修正しました

背景このバグは滾動條占據空間ことで発生していました。いくつかの情報を確認して、ようやく解決しました。...

JQueryセレクターの詳細な説明

目次基本的なセレクター:レベルセレクター:属性セレクター:フィルターセレクター:フォーム属性セレクタ...

AngularパイプラインPIPEの紹介と使い方

序文PIPE、パイプラインと翻訳されます。 Angular パイプは、HTML コンポーネントで宣言...

Tomcat 実行時の JVM エンコーディングの問題を修正

質問:最近、プロジェクトを展開すると文字化けしたデータが出てきました。確認したところ、プロジェクトは...

Linux での MySQL 8.0.25 のインストールと設定のチュートリアル

LinuxにMySQL 8.0.25をインストールするための最新のチュートリアルを参考にしてください...

geoip を使用して nginx で地域を制限する方法

このブログは仕事のメモです環境: nginx バージョン: nginx/1.14.0 Centos ...

Kubernetes YAMLファイルの使用

目次01 YAMLファイルの概要YAML---キー値型YAML---リスト型02 K8Sにおけるマス...

CSS3 @mediaの基本的な使い方のまとめ

//文法: @media mediatype and | not | only (メディア機能) ...

Vue プロジェクトで SVG コンポーネントをパッケージ化して構成する手順

最近新しい会社に入社しました。プロジェクトに携わった後、タイトルアイコンが svg で作られていると...

Reactホームページの読み込みが遅い問題のパフォーマンス最適化事例の詳細な説明

しばらくReactを勉強した後、実践してみたいと思います。そこで、個人のブログのウェブサイトを再構築...

MySQLを5.7にアップグレードすると、WordPressはデータをインポートするときにエラー1067を報告します

最近MySQLを5.7にアップグレードしましたが、WordPressでデータのインポート時にエラーが...