1

かつては家庭的だったウェブサイトを 2 人以上のユーザーが利用できるようにしようとしています。私のウェブサイトに登録して実行している各ユーザーに対して新しい MySQL ユーザーを作成することはスケーラブルですか?

CREATE USER $userName [IDENTIFIED BY [PASSWORD] '$userPass']

誰かが登録するたびに?mysql_connect()次に、彼らの名前で通話を設定します。

または、次のようなことを行う利点/注意事項はありますか

 CREATE USER genericSiteUser [IDENTIFIED BY [PASSWORD] 'sitePass']

$userName誰がどのコメントを残したのかなどを追跡するための列を入れるだけですか?または、これらの両方よりも優れた 3 番目の方法はありますか?

4

2 に答える 2

1

データベース ユーザーの作成はスケーラブルではなく、安全でもありません。代わりに、最小限の権限 (理想的には挿入/選択/更新/削除のみ) を持つデータベース ユーザーを 1 人作成し、テーブルを使用してユーザーを追跡する必要があります。

その後、comments テーブルに user テーブルへの外部キーを作成できます。

于 2012-09-03T02:19:30.820 に答える
0

いいえ -- MySQLCREATE USERコマンドは、ユーザーが MySQL データベース自体にアクセスできるようにするために使用されます。通常のアプリケーションから呼び出すことはできません。実際、適切なセキュリティ プラクティスでは、アプリケーションで使用されるデータベース ユーザーが、SUPERユーザーを管理するために必要な特権を持っていてはなりません。

アプリケーションのユーザーは、MySQL へのアクセスに使用されるユーザー資格情報とはまったく関係がないため、アプリケーションは、アプリケーションで使用される他のデータと同様に、ユーザーに関するデータをデータベース テーブルに保持する必要があります。

于 2012-09-03T03:40:26.787 に答える