MySQLのパスワード変更とアクセス制限設定について詳しく解説
mysql|アクセス|詳しい説明
MySQL は、真のマルチユーザー、マルチスレッド SQL データベース サーバーです。 MySQL はクライアント/サーバー構造として実装されており、サーバー デーモン mysqld とさまざまなクライアント プログラムおよびライブラリで構成されます。ソース コードのオープン性と安定性、および人気の Web サイト プログラミング言語 PHP との完璧な統合により、現在では多くの Web サイトでバックエンド データベースとして使用され、広く使用されています。セキュリティ上の理由から、さまざまなユーザーの要件を満たすために、各ユーザーにさまざまなデータベースへのアクセス制限を割り当てる必要があります。参考までに、以下で個別に説明します。
1. MySQL パスワード変更方法のまとめ
まず、注意すべき点は、通常の状況では、MySQL パスワードを変更するには mysql の root 権限が必要であるため、管理者に変更を依頼しない限り、一般ユーザーはパスワードを変更できません。それ。
方法 1
phpMyAdmin (MySql データベースのグラフィカル管理ツール) を使用します。これは、SQL ステートメントを直接使用して mysql データベース ライブラリのユーザー テーブルを変更するのが最も簡単ですが、PASSWORD 関数を使用することを忘れないでください。ユーザーを挿入するには、「挿入」コマンドを使用します。ユーザーを変更するには「更新」コマンドを使用し、ユーザーを削除するには「削除」コマンドを使用します。データ テーブルのユーザー フィールドについては、このセクションで後ほど詳しく説明します。
方法 2
mysqladmin を使用します。
mysqladmin -u root -p oldpassword newpasswd
と入力します。 このコマンドを実行した後、root のパスワードが newpasswd に変更されるように、root の元のパスワードを入力する必要があります。同様に、コマンド内の root を自分のユーザー名に変更すると、自分のパスワードを変更できます。 もちろん、mysqladmin が mysql サーバーに接続できない場合、または mysqladmin を実行できない場合、このメソッドは無効であり、mysqladmin はパスワードをクリアできません。
次のメソッドは mysql プロンプトで使用され、mysql root 権限が必要です:
方法 3
mysql> INSERT INTO mysql.user (Host,User,Password) VALUES ('%','system' , PASSWORD( 'manager'));
mysql> FLUSH PRIVILEGES
正確に言うと、これはユーザーを追加することであり、ユーザー名は system、パスワードは manager です。 PASSWORD 機能を使用してから、FLUSH PRIVILEGES を使用して確認を実行する必要があることに注意してください。
方法 4
REPLACE ステートメントを使用するだけで方法 3 と同じ
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES('%','system',PASSWORD('manager') ) ;
mysql> FLUSH PRIVILEGES
方法 5
SET PASSWORD ステートメントを使用します
mysql> SET PASSWORD FOR system@"%" = PASSWORD('manager');
PASSWORD() 関数も使用する必要があります確認を実行するには、FLUSH PRIVILEGES ではないことが必要です。
方法 6
GRANT... IDENTIFIED BY ステートメントを使用して承認します。
mysql> GRANT USAGE ON *.* TO system@"%" IDENTIFIED BY 'manager';
ここでは PASSWORD() 関数は不要であり、確認を実行するために FLUSH PRIVILEGES を使用する必要もありません。
注: PASSWORD() 関数はパスワードの暗号化に使用され、プログラム内の MySql によって自動的に解釈されます。
2. MySqlでアクセス制限を設定する方法
ユーザーを設定するには2つの方法があります。
Mysql 実行ディレクトリ (通常は c:mysqlbin) を入力します。 「mysqld-shareware.exe」と入力し、「mysql --user=root mysql」と入力します。そうしないと、新しいユーザーを追加できません。 mysql> プロンプトを入力して操作を実行します。
ユーザー名システムとユーザー パスワード マネージャーを備えたスーパー ユーザーを作成するとします。
方法 1
Grant コマンドを使用して承認し、次のようにコードを入力します:
mysql>GRANT ALL PRIVILEGES ON *.* TO system@localhost IDENTIFIED BY 'manager' WITH GRANT OPTION;
が表示されるはずです: Query OK,影響を受ける行は 0 行 (0.38 秒)
方法 2
ユーザーの各権限を設定します:
mysql>INSERT INTO user VALUES('localhost','system',PASSWORD('manager'), 'Y',' Y ','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' ) ;
MySQL バージョン 3.22.34 の場合、合計 14 個の「Y」があり、それらに対応する権限は次のとおりです (フィールド順に並べています):
権限テーブルの列名と対応する説明使用範囲
select Select_priv は、テーブルから取得するときに実際の Select 権限が必要な場合にのみ使用されます
insert Insert_priv を使用すると、既存のテーブルに新しい行を挿入できます
update Update_priv を使用すると、既存のテーブルの行のリストを新しい値で更新できます
delete Delete_priv を使用すると、条件を満たす行を削除できます Table
create Create_priv を使用すると、新しいデータベースとテーブルのデータベース、テーブル、またはインデックスを作成できます
drop Drop_priv 既存のデータベースとテーブルを破棄 (削除) します
reload Reload_priv を使用すると、次のことができますサーバーに認可テーブルを読み込むように指示する サーバー管理
shutdown Shutdown_priv 悪用の可能性あり (サーバーを終了することで他のユーザーへのサービスを拒否する) サーバー管理
process Process_priv パスワードの設定や変更を含む、現在実行中のクエリのプレーン テキストを表示できます。クエリ サーバー管理
file File_priv 権限を悪用してサーバー上のあらゆるものを読み取ることができる データベース テーブル サーバー上でファイル間の読み取りアクセスが可能
grant Grant_priv を使用すると、他のユーザーのデータベースまたはテーブルに所有する権限を付与できます
references References_priv を使用すると、レコード ファイルのデータベースまたはテーブルを開いたり閉じたりできます
index Index_priv を使用すると、インデックス テーブルを作成または破棄 (削除) できます
alter Alter_priv を使用すると、変更することができますテーブルの名前を変更することで、テーブルを使用して権限システム テーブルをオーバーライドできます
選択、挿入、更新、削除の権限のみを持ってユーザーが作成された場合、ユーザーはデータベースの既存のテーブルに対してのみ操作を実行できます。
これで、使用するデータベースを作成できるようになりました。たとえば、XinXiKu という名前のデータベースを作成したい場合は、次のコードを使用できます:
mysql>create database XinXiKu;
should表示: クエリは OK、1 行が影響を受けました (0.00 秒)
🎜

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ビッグ データ構造の処理スキル: チャンキング: データ セットを分割してチャンクに処理し、メモリ消費を削減します。ジェネレーター: データ セット全体をロードせずにデータ項目を 1 つずつ生成します。無制限のデータ セットに適しています。ストリーミング: ファイルやクエリ結果を 1 行ずつ読み取ります。大きなファイルやリモート データに適しています。外部ストレージ: 非常に大規模なデータ セットの場合は、データをデータベースまたは NoSQL に保存します。

MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。
