私のシニアデザインプロジェクトでは、たくさんのサブツールでiGoogleタイプのアプリケーションを作っています。アプリケーションはAJAXを多量に使用します。このため、いくつかの情報はクライアントに送信されるときにページに保存されるので、追加/削除などのときにツールに更新を加えることができます。SQL Serverの更新/挿入/削除の参加の質問
私の質問は、セキュリティに関するところです。データをクライアント側で改ざんできないようにして、ユーザーが他のユーザーのデータに影響を及ぼす可能性を排除します。
私がしたいことは、挿入/更新/削除ステートメントを作成するときにユーザーIDを確認して、ユーザーがデータを変更していることを確認することです。
これは、ユーザー・テーブルのユーザーIDを外部キーとして使用する最初の表には問題ありません。しかし、私はそこから分岐している他の多くのテーブルを持っています。
2つの個別のステートメント/クエリを実行せずに行う方法はありますか?私は選択結合を行うことができ、そのようなレコードが存在するかどうかを確認してから、更新/挿入/削除を実行することができます。 1つのステートメントで行うことは可能ですか?
SQL Serverでサブクエリを調べ始めました。サブクエリでこれを行うことはできますか?
これが愚かな質問であれば、私の無知を許してください。まだ学んでいる。ありがとう。
私の悪意のあるデータに偽のユーザーIDを送信しないようにするにはどうすればよいですか? –
私はあなたの質問がSQL Serverのデータを保護する方法についてのみ理解していますが、これは設計アーキテクチャの重要な部分です。はい、ストアドプロシージャを使用する必要があります。はい、実行中のユーザーが特定のデータを操作できるかどうかを判断するには、結合またはサブクエリーを使用できます。ただし、これらのルールや制約は、UIにも適用する必要があります。ユーザーとして、UI内のすべてのものを変更し、変更をコミットしようとしているとします。バックエンド(つまりSQL Server)は、あなたが修正しようとしているものを変更できないと言っているので、アプリはあなたに叫ぶ。ユーザーとして、時間を無駄にしてしまっただけです。 – bitxwise