0

特権ユーザーは MySQL でどのように機能しますか? ソーシャル ネットワーキング Web サイトを使用するすべてのユーザーは、データベースに接続するためにそれぞれ固有のユーザー特権を持っていますか、それともすべてのユーザーが次のような同じ特権を使用しますか?

$dsn = 'mysql:host=localhost;dbname=social_site';
$username = 'members';
$password = 'pa55word'; 
4

2 に答える 2

1

いいえ、一般的に言えば、1 人 (または少数) の MySQL ユーザーが存在し、PHP スクリプト (または他のサーバー側コード) はこの 1 人のユーザーを使用して、データのフェッチと設定のすべてを行います。一部のシナリオでは、追加のセキュリティ レベルとして、さまざまな権限レベルを持つ一握りの MySQL ユーザーを作成すると便利です (したがって、一般的なselectクエリは権限のみを持つユーザーを使用して実行selectされ、それらの権限insertsupdates持つ別のユーザーによって処理されます)。リモート コンピューターが (パートナーの Web サイトまたはアプリケーションのために) MySQL データベースに直接アクセスできるようにする場合、その接続用に特定の MySQL ユーザーを作成し、アクセス許可を必要なものだけに制限することも一般的です (なしdropまたはなし)。modifyパーミッションなど)、IP アドレスのみに制限されます (MySQL ユーザーを単一のアドレスからの接続のみに制限できます)。

肝心なのは、通常は少数のユーザーのみを作成する必要があり、Web サイト/アプリケーションはこの小さなユーザー プールのみを使用してすべてのクエリを実行するということです。さらに、タスクを実行できる最小限の権限しか持たないユーザーでデータベースにアクセスすることをお勧めします (理由の範囲内で...考えられるアクションごとに個別のユーザーを作成しないでください...通常は 1 ~ 3 人のユーザーですべてをカバーする必要があります)。必要なアクセス許可レベル)。膨大な数のユーザーを作成すると、(a) MySQL がより大きな権限テーブルにアクセスする必要があるため、MySQL の速度が低下します。(b) アプリケーションが途中で変更された場合、アクセス許可の管理がはるかに難しくなります。(c) パーミッションの問題をデバッグするのはより面倒です (PHP スクリプトは、パーミッションの問題が発生した場合に何を実行し、報告するかについてより柔軟です)。

于 2012-02-16T00:12:23.173 に答える
0

通常、1 つのデータベース接続があり、各ユーザー アカウントを対応するユーザー名とパスワードと共に "Users" テーブルに格納します。

于 2012-02-15T23:59:08.053 に答える