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疑似クラス名を数字で始めないでください

推薦する

Linux環境変数の設定に関する完全なガイド

Linux環境変数の設定ソフトウェアのインストールをカスタマイズする場合、多くの場合、環境変数を設定...

Keepalived は Nginx の負荷分散と高可用性のサンプル コードを実装します

第1章: keepalivedの紹介VRRP プロトコルの目的は、静的ルーティングの単一点障害問題を...

Windows10 HomeバージョンにDockerをインストールするときに発生する問題の概要

Docker ダウンロード アドレス: http://get.daocloud.io/#instal...

jsのイベントオブジェクトを深く理解しましょう

JS でよく使用されるイベントは次の通りです。ページイベント: load;フォーカス イベント: フ...

Innodb システムテーブルスペースのメンテナンス方法

環境説明:実行中の MySQL 環境があります。以前の構成ファイルの設定が単純すぎたため (inno...

MySQLがOracleのnvlと同様の機能を持つことができるかどうかについての簡単な議論

isnullの代わりにifnullを使用するisnull は、null かどうかを判断するために使用...

MySQL の NULL 値に関する体験談と分析チュートリアルシリーズ

目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...

MySQL インフラストラクチャ チュートリアル: クエリ ステートメント実行プロセスの詳細な説明

序文私は以前から、SQL 文がどのように実行され、どのような順序で実行されるのかを知りたいと思ってい...

CSS の複雑なセレクターと CSS のフォントスタイルと色属性の詳細な説明

これまでに CSS の基本的なセレクターをいくつか学習しましたが、今日は CSS の複雑なセレクター...

カルーセルアニメーションを実現するVueコンポーネント

この記事では、カルーセルアニメーションを実現するためのVueコンポーネントの具体的なコードを例として...

Windows Server 2019 のインストール (グラフィカル チュートリアル)

Windows Server 2019 は、Microsoft が公式にリリースした最新のサーバー...

vue 動的コンポーネント

目次1. コンポーネント2. キープアライブ2.1 問題点2.2 キープアライブを使って解決する2....

MySQL方言の簡単な紹介

データベースはさておき、人生における方言とは何でしょうか?方言とは、ある場所特有の言語です。他の場所...

HTMLフロートの使用法の簡単な分析

float の使用例左サスペンション: float:left;右サスペンション: float:rig...

VMware仮想マシンにdeepin20をインストールする最も完全で詳細なプロセス

仮想マシンソフトウェア: VMware Workstationイメージ: deepin-deskto...