質問

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

$dsn = 'mysql:host=localhost;dbname=social_site';
$username = 'members';
$password = 'pa55word'; 
役に立ちましたか?

解決

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

一番下の行は、通常、少数のユーザーのみを作成する必要があり、ウェブサイト/アプリケーションはこの小さなユーザーのプールのみを使用してすべてのクエリを行うことです。さらに、タスクを達成するために可能な限りのアクセス許可を持つユーザーを使用してデータベースにアクセスすることをお勧めします(理由の範囲内...すべての可能なアクションに対して別のユーザーを作成しないでください...通常1〜3ユーザーはすべてをカバーする必要があります必要な権限レベル)。膨大な数のユーザーを作成すると、より大きな権限テーブルにアクセスする必要があるため、MySQLを遅くすることができます。 (b)アプリケーションが将来的に変更された場合、許可を管理することははるかに困難です。 (c)アクセス許可の問題をデバッグするのは痛いことです(PHPスクリプトは、権限の問題がある場合に何をすべきかを柔軟に行い、報告します)。

他のヒント

通常、1つのデータベース接続があり、各ユーザーアカウントを対応するユーザー名とパスワードを備えた「ユーザー」テーブルに保存します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top