ホームページ >php教程 >php手册 >MySQLのパスワード変更とアクセス制限設定について詳しく解説

MySQLのパスワード変更とアクセス制限設定について詳しく解説

WBOY
WBOYオリジナル
2016-06-21 09:09:01857ブラウズ

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 秒)



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