ホームページ  >  記事  >  データベース  >  mysqlのパスワードはどこにありますか?

mysqlのパスワードはどこにありますか?

青灯夜游
青灯夜游オリジナル
2022-06-27 16:39:098647ブラウズ

mysqlのパスワードは、ユーザー権限テーブルのauthentication_stringフィールドに配置されます。ユーザー テーブルは、MySQL で最も重要な権限テーブルです。サーバーへの接続が許可されているアカウント情報を記録するために使用されます。ユーザー パスワードを変更すると、実際にはユーザー テーブルの authentication_string フィールドの値が変更されます。構文は「SET PASSWORD FOR 'username'@' hostname'=PASSWORD ('新しいパスワード')」です。

mysqlのパスワードはどこにありますか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

mysql のパスワードは、ユーザー権限テーブルの [authentication_string] フィールドに配置されます。

MySQL ユーザー権限テーブルの User 列

MySQL はインストール中に mysql という名前のデータベースを自動的に作成します。mysql データベースは次の場所に保存されます。ユーザー権限テーブル。ユーザーがログインすると、MySQL はこれらの権限テーブルの内容に基づいて、対応する権限を各ユーザーに付与します。

ユーザー テーブルは MySQL で最も重要な権限テーブルであり、サーバーへの接続を許可されたアカウント情報を記録するために使用されます。ユーザー テーブルで有効になっているすべての権限はグローバルであり、すべてのデータベースに適用されることに注意してください。

mysqlのパスワードはどこにありますか?

#ユーザー テーブルのフィールドは、ユーザー列、権限列、セキュリティ列、リソース制御列の 4 つのカテゴリに大別できます。

ユーザー列には、ユーザーが MySQL データベースに接続するときに入力する必要がある情報が保存されます。

MySQL 5.7 バージョンでは、パスワード フィールドとして Password が使用されなくなり、authentication_string に変更されたことに注意してください。

MySQL ユーザー列を表 1 に示します。

#ホスト名ユーザーchar(32)NOなしユーザー名認証文字列テキストYESなしパスワード#ユーザーがログインするとき、これら 3 つのフィールドが同時に一致すると、MySQL データベース システムはユーザーのログインを許可します。新しいユーザーを作成するとき、これら 3 つのフィールドの値も設定されます。
表 1: ユーザー テーブルのユーザー列
フィールド名 フィールド タイプ 空ですか デフォルト値 説明
ホスト char(60) NO なし
ユーザーパスワードを変更すると、実際にはユーザーテーブルのauthentication_stringフィールドの値が変更されます。

したがって、これらの 3 つのフィールドによって、ユーザーがログインできるかどうかが決まります。

SET ステートメントを使用して一般ユーザーのパスワードを変更するMySQL では、root ユーザーのみが、 MySQLデータベース。 root ユーザーとして MySQL サーバーにログインした後、SET ステートメントを使用して通常のユーザーのパスワードを変更できます。構文形式は次のとおりです。

SET PASSWORD FOR 'username'@'hostname' = PASSWORD ('newpwd');

このうち、username パラメータは一般ユーザのユーザ名、hostname パラメータは一般ユーザのホスト名、newpwd は変更する新しいパスワードです。 。

注: 新しいパスワードは、PASSWORD() 関数を使用して暗号化する必要があります。PASSWORD() を使用して暗号化されていない場合、パスワードは正常に実行されますが、ユーザーはログインできません。

一般ユーザーがパスワードを変更する場合は、FOR 句を省略して自分のパスワードを変更できます。構文形式は次のとおりです:

SET PASSWORD = PASSWORD('newpwd');

例 1

まず、パスワードなしで testuser ユーザーを作成します。SQL ステートメントと実行結果は次のとおりです:

mysql> CREATE USER 'testuser'@'localhost';
Query OK, 0 rows affected (0.14 sec)

root ユーザー MySQL サーバーにログインした後、SET ステートメントを使用して testuser ユーザーのパスワードを「newpwd」に変更します。SQL ステートメントと実行結果は次のとおりです。実行結果から、SET ステートメントが正常に実行され、testuser ユーザーのパスワードが「newpwd」に正常に設定されたことがわかります。

次の例では、testuser ユーザーのパスワードが正常に変更されたかどうかを確認します。 MySQL サーバーを終了し、testuser ユーザーとしてログインし、パスワード「newpwd」を入力します。SQL ステートメントと実行結果は次のとおりです:

mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd");
Query OK, 0 rows affected, 1 warning (0.01 sec)

実行結果から、testuser ユーザーがログに記録したことがわかります。正常に入力され、パスワードが正常に変更されました。

例 2

testuser ユーザーを使用して MySQL サーバーにログインし、SET ステートメントを使用してパスワードを「newpwd1」に変更します。

C:\Users\leovo>mysql -utestuser -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.29-log MySQL Community Server (GPL)
 
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
実行結果を見ると、パスワードが正常に変更されたことがわかります。

[関連する推奨事項:

mysql ビデオ チュートリアル

]

以上がmysqlのパスワードはどこにありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。