ユーザーが作成したデータをSQLAzure/ SQL Serverに保存し始めたい、ユーザーのPCにリッチクライアントプログラムをインストールしています。潜在的な匿名ユーザーは、名前、電子メールアカウント、およびSQL Azure /SQLServerに保存されるパスワードを入力します。それから彼らは彼ら自身のデータを生成し始めるでしょう。おそらく1000人のユーザーのボリュームを見込んでいます。
それらのユーザーが自分のデータに対して自分のクエリを実行したい場合がありますが、明らかに、他のユーザーのデータを表示できないようにする必要があります。
データのセキュリティを確保する最善の方法は、各ユーザーに独自のSQLAzureアカウントとパスワードを発行することだと思います。SQL Azureユーザーと自分だけが知っている長いパスワードを設定します。このパスワードには、SQL Serverアカウントを作成し、ログインしてユーザーを役割に追加するSPに適切なパラメーターを渡して、いくつかのストアドプロシージャを実行する権限しかありません。私が作成しました。
明らかに、デバッグツールを実行している誰かがユーザー名とパスワードを理解することができますが、これは大したことではないと思います。特定のSQLAzureアカウントで実行できるのは、いくつかのSPを実行することだけである場合、悪意のある個人がそれを実行し始めたらどうなるでしょうか。支払いが必要になる前に、非常に限られた量のデータのみをアップロードすることを許可します。
ユーザーは、以下を使用するストアドプロシージャを使用してのみレコードを挿入できます。
SELECT @uName=SYSTEM_USER
適切な親レコードのみを選択します。ユーザーが実行できるすべてのストアドプロシージャには、必要に応じて上記があり、自分のレコードでのみ作業できるようになっています。
すべてのビューには、次のようなWHERE句が埋め込まれています。
WHERE tbLoginName = SYSTEM_USER.
私はSQLServerを初めて使用するため、いくつかの基本的な概念が欠落している可能性があるため、コメントをいただければ幸いです。