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

推薦する

Vue elementUI フォームのネストされたテーブルと各行の検証の詳細な説明

目次エフェクト表示コードリンクキーコード表形式データコンポーネントのネスト検証方法リセット方法完全な...

DockerでLinuxシェルコマンドを実行する方法

Docker でシェル コマンドを実行するには、コマンドの前に sh -c を追加する必要があります...

MySQL でストリーミングクエリを使用してデータ OOM を回避する

目次1. はじめに2. JDBCはストリーミングクエリを実装する3. パフォーマンステスト3.1. ...

Centos7 システム上の nginx サーバーで Phalcon 環境を構築する方法の詳細な説明

この記事では、centos7 システムの nginx サーバーの下に phalcon 環境を構築する...

ウェブページをデザインする際に注意すべきいくつかの問題

Web デザインは、個人の好みや Web ページの内容に応じて、デザインのレイアウトが常に変化します...

イメージを再構築せずにDockerにポートを動的に追加する方法

操作中に Docker コンテナの公開ポートを変更または追加する必要がある場合がありますが、実行中の...

Linux inotifyリアルタイムバックアップの実装方法の詳細説明

リアルタイム レプリケーションは、企業データをバックアップする最も重要な方法です。主に、ユーザーが送...

Vue開発の一般的な手法の詳細な説明

目次$nextTick() $forceUpdate() $セット() .sync——2.3.0 以...

MySQL でよく使用される SQL 文を表示する (詳細な説明)

#mysql -uroot -pパスワードを入力してくださいmysql> show full...

JavaScript におけるセミコロンの詳細

序文JavaScript ではセミコロンはオプションであり、使用するかどうかは主にコーディング スタ...

MySQL Binlog ログ処理ツールの比較分析

目次運河マクスウェルデータバスAlibaba Cloud のデータ転送サービス (DTS)運河ポジシ...

Javascriptの基本ループの詳しい説明

目次サイクルのために入室のためのその間しながら行うループから抜け出す要約するサイクルのためにループは...

ブリージングカルーセルを実装するネイティブJS

今日は、ネイティブ JS で実装されたブリージング カルーセルを紹介します。効果は次のとおりです。 ...

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります...

vue3 のさまざまな構文形式を比較したサンプルコード

デフォルトのテンプレートメソッドはvue2に似ており、コンポーネント内のセットアップ関数を使用します...