-1

データベースに接続する php サーバーを設計したいと考えています。私は2つの方法を考えています.1つ目は、ユーザーが登録されているかどうかを確認し、次のような一般的なユーザー名を使用してDBへのアクセスを許可することです:

    <?php

    /*
     * database connection variables
     */
    if(username_is_valid()){
       define('DB_USER', "user"); // general db user
       define('DB_PASSWORD', "userpassword"); // db password 
       define('DB_DATABASE', "db_1"); // database name
       define('DB_SERVER', "localhost"); // db server
    }    
?>

または、すべてのユーザーに一意のユーザー名とパスワードを与えることができます

より良い練習は何ですか?

4

2 に答える 2

2

ユーザーにデータベースへのアクセスを許可する必要はありません。PHP に mysql へのアクセスを許可し、PHP を使用してデータにアクセスします。

したがって、mysql に mysql ユーザーが割り当てられており、PHP コードを使用して、そのユーザーを使用して mysql にアクセスします。次に、PHP スクリプトがその mysql ユーザーを使用してデータベースに接続すると、データベースからデータを取得 (挿入、更新など) し、PHP/HTML/CSS などを介してユーザーに提供できます。

しかし、DB にアクセスするすべてのユーザーに特定のユーザー名を設定するか、全員が同じ接続パラメーターを使用できるようにする必要がありますか?

ユーザーは mysql にアクセスしません
ユーザーが Web サイトのスクリプト (この場合は PHP) にアクセスすると、PHP は mysql にアクセスできます。

ユーザー -> ウェブサイト -> PHP スクリプト -> mysql -> データの取得 -> ユーザーに表示

ただし、質問に答えるために、「PHP」(ユーザーではない) は同じ mysql ユーザーを使用して、サイトのすべてのユーザーに対して mysql に接続します。mysql からデータを提供するユーザーが何であれ、PHP は同じ mysql ユーザーを使用できます。
さまざまな mysql ユーザーを使用できますが、非常にまれであり、実際に必要な場合は、その理由とすべてを既に知っているでしょう (つまり、スクリプト/フレームワークの非常に大きなセットなど)。

于 2013-09-22T23:53:10.167 に答える
1

一般的な設計では、アプリケーションは単一のデータベース アカウントを使用して SQL Server データベースにアクセスします。データベース内のテーブルには、アプリケーションのユーザーに関する情報 (ユーザー名、ハッシュ化されたパスワード、権限など) が格納されます。

アプリケーションは、データベース内のストアド プロシージャを使用してデータにアクセスできます。テーブルを保護executeし、ストアド プロシージャ用のアプリケーションのアカウントへのアクセスを許可することで、アプリケーションおよびアプリケーションの資格情報を使用する他のユーザーによって発生する可能性のある損害を制限します。

ユーザーの ID をストアド プロシージャに渡すと、ストアド プロシージャはユーザーごとに適切にアクセスを制限できます。たとえば、オフィス マネージャーは、オフィス内の全員のデータを変更できます。

于 2013-09-23T01:54:05.377 に答える