MySQL シリーズ 6 のユーザーと認証

MySQL シリーズ 6 のユーザーと認証

チュートリアルシリーズ

MySQL シリーズ: MySQL リレーショナル データベースの基本概念
MySQLシリーズのMariaDBサーバーのインストール
MySQL シリーズ II マルチインスタンス構成
MySQL シリーズ 3 基礎
MySQL シリーズ 4 SQL 構文
MySQLシリーズ5つのビュー、ストアド関数、ストアドプロシージャ、トリガー
MySQL シリーズ 7 MySQL ストレージ エンジン
MySQL シリーズ 8 MySQL サーバー変数
MySQL シリーズ 9 MySQL クエリ キャッシュとインデックス
MySQL シリーズ 10 同時実行制御を実装するための MySQL トランザクション分離
MySQL シリーズ 11 ログ
MySQL シリーズ 12 バックアップとリカバリ
MySQL シリーズ 13 MySQL レプリケーション
MySQL シリーズ 14 MySQL 高可用性実装
MySQLシリーズ15 MySQL共通設定とパフォーマンスストレステスト

1. ユーザー管理

1. ユーザーアカウント

ユーザーアカウントは、ユーザー名とホスト('USERNAME'@'HOST')の2つの部分で構成されます。

HOST とは:

  • ホスト名
  • 特定のIPアドレス
  • ネットワークセグメント/マスク

ワイルドカード、%、_ を使用できます。192.168.% は、このネットワークセグメント内のすべてのホストを意味します。

2. アカウントの追加と削除

メイン: データベース内のユーザー情報を変更した後、FLUSH PRIVILEGESを実行して認証テーブルを更新し、有効にする必要があります。

作成する

  MariaDB [mysql]> ユーザー 'user1'@'192.168.%' を作成します。
  MariaDB [mysql]> 'user2'@'192.168.%' というユーザーを作成し、'your_password' で識別します。
  MariaDB [mysql]> ユーザー、ホスト、パスワードをユーザーから選択します。
  +-------+-----------+--------------------------------------------------------+
  | ユーザー | ホスト | パスワード |
  +-------+-----------+--------------------------------------------------------+
  | ルート | ローカルホスト | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
  | ルート | centos7 | |
  | ルート | 127.0.0.1 | |
  | ルート | ::1 | |
  | | ローカルホスト | |
  | | centos7 | |
  | ユーザー1 | 192.168.% | |
  | ユーザー2 | 192.168.% | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
  +-------+-----------+--------------------------------------------------------+

消去

  MariaDB [mysql]> DROP USER user2@'192.168.%';
  MariaDB [mysql]> ユーザー、ホスト、パスワードをユーザーから選択します。      
  +-------+-----------+--------------------------------------------------------+
  | ユーザー | ホスト | パスワード |
  +-------+-----------+--------------------------------------------------------+
  | ルート | ローカルホスト | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
  | ルート | centos7 | |
  | ルート | 127.0.0.1 | |
  | ルート | ::1 | |
  | | ローカルホスト | |
  | | centos7 | |
  | ユーザー1 | 192.168.% | |
  +-------+-----------+--------------------------------------------------------+

名前を変更

  MariaDB [mysql]> ユーザー user1@'192.168.%' の名前を testuser@'%' に変更します。
  MariaDB [mysql]> mysql.user からユーザー、ホスト、パスワードを選択します。
  +----------+----------+--------------------------------------------------------+
  | ユーザー | ホスト | パスワード |
  +----------+----------+--------------------------------------------------------+
  | ルート | ローカルホスト | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
  | ルート | centos7 | |
  | ルート | 127.0.0.1 | |
  | ルート | ::1 | |
  | | ローカルホスト | |
  | | centos7 | |
  | テストユーザー | % | |
  +----------+----------+--------------------------------------------------------+

パスワードを変更する

  MariaDB [mysql]> testuser@'%' のパスワードを設定します = PASSWORD('testpass');
  MariaDB [mysql]> mysql.user からユーザー、ホスト、パスワードを選択します。          
  +----------+----------+--------------------------------------------------------+
  | ユーザー | ホスト | パスワード |
  +----------+----------+--------------------------------------------------------+
  | ルート | ローカルホスト | *4A54C3F37C03C7FBACE31591D6A8C546F93DF5C5 |
  | ルート | centos7 | |
  | ルート | 127.0.0.1 | |
  | ルート | ::1 | |
  | | ローカルホスト | |
  | | centos7 | |
  | テストユーザー | % | *00E247AC5F9AF26AE0194B41E1E769DEE1429A29 |
  +----------+----------+--------------------------------------------------------+

パスワードを変更する他の方法:

​ ユーザーを更新します。SET password=PASSWORD('testpass') WHERE user='testuser';

# mysqladmin -uroot -poldpass パスワード 'newpass'

3. 管理者アカウントのパスワードを解読する

空のデータベースからパスワードを回復する

  # systemctl を停止 mariadb
  # rm -rf /var/lib/mysql/* #データベースを削除して終了します # systemctl start mariadb

データを使ってパスワードを回復する

1) /etc/my.cnf設定ファイルの[mydqld]の下にskip-grant-tablesとskip-networkingパラメータを追加します。

2) # systemctl restart mariadb サービスを再起動します

3) mysqlを実行してデータベースにログインする

4) MariaDB [(なし)]> UPDATE mysql.user SET password=PASSWORD('newpassword') WHERE user='root' AND host='localhost'; #パスワードを更新

5) MariaDB [(none)]> FLUSH PRIVILEGES; #認証テーブルを更新する

6) 終了し、設定ファイルを変更し、skip-grant-tables および skip-networking パラメータを削除して、サービスを再起動します。mysqld プロセスを起動するときに、次のオプションを使用することもできます。

--skip-grant-tables

--ネットワークをスキップ

2. 権限管理

1. 認可

構文: GRANT priv_type ON [object_type] priv_level TO user@'%' [IDENTIFIED BY 'password'] [WITH GRANT OPTION];

認可時にユーザーが存在しない場合は作成されます。そのため、通常はユーザーを別途作成せず、認可作成も同時に完了させます。

priv_type 認証タイプ

-選択

- 挿入

- 更新

- 削除

- 作成する

- 落とす

-索引

-変更

- データベースを表示

- 一時テーブルを作成する

- テーブルをロックする

- ビューの作成

- ビューを表示

- ユーザーの作成

- すべての権限またはすべて

object_type 認可オブジェクト

-テーブル

- 関数

- 手順

priv_level 承認レベル

- * または *.* はすべてのライブラリを意味します

- db_name.*は指定されたデータベース内のすべてのテーブルを意味します

- db_name.tbl_name 指定されたライブラリ内の指定されたテーブル

- tbl_nameは現在のライブラリのテーブルを示します

- db_name.routine_name は、指定されたライブラリの関数、ストアド プロシージャ、またはトリガーを示します。

グラントオプション付き

- MAX_QUERIES_PER_HOUR カウント

- MAX_UPDATES_PER_HOUR カウント

-MAX_CONNECTIONS_PER_HOUR カウント

-MAX_USER_CONNECTIONS カウント

MariaDB [school]> GRANT SELECT(stuid,name) ON TABLE school.students TO admin@'%' IDENTIFIED BY 'admin'; #studentsテーブルのstuidフィールドとnameフィールドのクエリ権限をadmin@'%'ユーザーに許可しますMariaDB [school]> FLUSH PRIVILEGES; #許可テーブルを更新します

2. クエリの承認

MariaDB [school]> SHOW GRANTS FOR admin@'%'\G #指定されたユーザーの権限を表示します**************************** 1. 行 ****************************
admin@% への許可: パスワード '*4ACFE3202A5FF5CF467898FC58AAB1D615029441' で識別される 'admin'@'%' への *.* の使用許可
************************** 2. 行 ****************************
admin@% への権限付与: GRANT SELECT (stuid, name) ON `school`.`students` TO 'admin'@'%'
[root@working ~]# mysql -uadmin -padmin -h192.168.0.7
MariaDB [(なし)]> SHOW GRANTS FOR CURRENT_USER()\G #自分の権限を照会**************************** 1. 行 ****************************
admin@% への許可: パスワード '*4ACFE3202A5FF5CF467898FC58AAB1D615029441' で識別される 'admin'@'%' への *.* の使用許可
************************** 2. 行 ****************************
admin@% への権限付与: GRANT SELECT (stuid, name) ON `school`.`students` TO 'admin'@'%'

3. 認可の取り消し

MariaDB [school]> REVOKE SELECT(stuid) ON school.students FROM admin@'%'; #stuidフィールドに対するadmin@'%'ユーザーのクエリ権限を取り消します

要約する

これで、MySQL ユーザーと認証に関するこの記事は終了です。MySQL ユーザーと認証に関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL ユーザーの作成と認証方法
  • MySql のユーザー追加、認証、パスワードの変更、その他のステートメント
  • MySQL ユーザーの作成、承認、取り消しの方法
  • MySQL で新規ユーザーの作成と認証を行う方法の共有
  • MySQL でのユーザー認証と認証削除の方法
  • mysql データベースの作成、ユーザーの追加、ユーザー認証の実用的な方法
  • mysql5.7 ユーザー権限の作成、ユーザーの削除、権限の取り消し
  • MySql のインストールと設定方法 (MySQL ユーザーの追加、ユーザーの削除、認証)
  • WIN コマンドプロンプトで MySQL ユーザーのパスワードを作成、承認、削除、変更する
  • MySQL は、ユーザーの作成、ユーザーの承認、ユーザー権限の取り消し、ユーザー パスワードの変更、およびユーザーの削除を行います (実用的なヒント)

<<:  Webアプリケーションにおけるコンテキストパスの設定の詳細な説明

>>:  CSS疑似クラス名を数字で始めないでください

推薦する

Vue3 の ref と toRef の違いを簡単に分析します

1. refがコピーされ、ビューが更新されますrefを使用してオブジェクトのプロパティ値をレスポンシ...

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...

Vueはユーザー名が使用可能かどうかの検証を実装します

この記事では、ユーザー名が使用可能かどうかを確認するためのVueの具体的なコードを例として紹介します...

Vueはシンプルなデータ双方向バインディングを実装します

この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。初心者...

MySQLに画像を保存する方法

1 はじめにデータベースを設計する場合、画像や音声ファイルをデータベースに挿入することは避けられませ...

Docker-compose を使用して ELK クラスターを構築する方法

すべてのオーケストレーション ファイルと構成ファイルは、私の Github からアクセスできます。構...

Reactにおけるキーの役割の詳細な説明

目次質問: ボタンをクリックすると、スパンの色が赤に変わりますか?上記の問題を分析します。 2番目の...

CSS でハートを描く 3 つの方法

以下では、CSS を使用してハートの形を描く 3 つの方法を紹介します。実装プロセスは非常にシンプル...

vue-cli を使用してプロジェクトを作成し、webpack でパッケージ化する方法

1. 環境を準備する(Node.jsをダウンロードし、環境変数を設定する) 2. vue-cliをグ...

mysql 解凍パッケージの基本インストールチュートリアル

新しいコンピューターに変更したので、すべての環境を新しいコンピューター上で設定する必要があります。ふ...

Centos8.3、dockerデプロイメントspringbootプロジェクトの実際のケース分析

導入現在、k8s は非常に人気があり、それについて学ぶために本を購入しました。しかし、k8s では数...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...

node.jsミドルウェアの種類についての簡単な説明

目次概要1. アプリケーションレベルのミドルウェア2. 組み込みミドルウェア3. サードパーティミド...

JavaScript で 2 次元配列を作成するためのヒント

Js での 2 次元配列の作成:まず、JavaScript は 1 次元配列のみをサポートしています...

MySQL の最適化: InnoDB の最適化

勉強の計画は簡単に中断され、継続するのが困難です。先日、社内で事業の方向性を調整するための会議があり...