2011-02-26 6 views
1

SQL Server 2005 Expressを使用するmy c#.net winformsアプリケーションは、3人のユーザーによって実行されます&それぞれ異なるユーザーID &のパスワードこの場合、SQL Serverのセキュリティ機能を使用する必要がありますか?SQLサーバーを使用するwinformアプリケーションの複数のアプリケーションロール

  1. アプリケーション・ロール--canアプリケーションが の役割は、このために使用される、または アプリケーション・ロールは全体 アプリケーションのために一つだけ 資格を提供していますか?

  2. 私のアプリケーションがインストールされますSQL Serverに接続し、各ログイン

に 権限を付与 に、各ユーザーの新しいログインを作成するユーザーID用& パスワード

  • をテーブルを作成します3マシン、サーバSVR、クライアント-c-1、c-2。すべてのWindows XPのLAN上で。

    私は1つのアプリケーションに対して複数のアプリケーションロールを作成できますか?私はアプリケーションに3つのフォームがある場合は、私はそれを意味します。 3つのフォームはすべて異なるアプリケーションロールを使用できますか?

  • 答えて

    2

    SQL Serverでロールを作成し、YourAppSuperRole、YourAppNormalRole、YourAppReadOnlyRoleとし、これらのロールのそれぞれにオブジェクトのアクセス許可を付与することができます。 YourAppSuperRoleにsometableの挿入を許可します。 YourAppReadOnlyRoleにsometableを選択してください。 SQL Serverユーザーかドメインユーザーかにかかわらず、データベースにユーザーを作成する場合は、ユーザーを適切な役割に追加します。これでデータベースオブジェクトにセキュリティを実装する方法です。 GUI /プレゼンテーションレイヤーの操作方法をバックエンドから切り離すことができます。 Windowsドメインユーザーを特定するか、アプリケーションユーザーを作成し、それらのユーザーを使用してログオンを要求し、それに従ってGUIの動作を管理することができます。例えば。 Readonlyロールに入れたユーザーからSAVE RECORDボタンを削除することができます。

    EDIT:Windowsドメインユーザーを使用するのが最も簡単な方法だと思います。バックエンドのドメインユーザーにdbアクセスを許可し、それらのユーザーを適切なバックエンドの役割に追加します(バックエンドで表示/変更できる内容を判断する)。次に、GUIで、アプリを使用しているドメインユーザーにグラフィカルな動作を適用します。フォームから[保存]ボタンを削除しなかった場合、readonlyロールのユーザーはこれをクリックできますが、更新は失敗します。だから、あなたは通常、そのユーザーに、権限がないことを実行する明らかな能力をユーザーに提供しません。

    +0

    これは、私の答えで私が得ていたものですが、あなたがそれをより良く言ったと思います。ニース。 – richard

    +0

    実際、あなたはちょうど反対です。 「SQL Serverのセキュリティを使用して、異なる「アプリケーションの役割」を持たせることはしませんでした。アプリケーションのサーバーユーザーを1人定義するだけです。 – Tim

    +0

    あなたはアプリケーションロールまたは単にロールを意味します – sqlchild

    0

    あなたは、さまざまなユーザーに異なる役割(権限と能力、アプリ内の機能へのアクセス)を適用したいと思っています。

    SQL Serverのセキュリティを使用して異なる「アプリケーションの役割」を与えることはありません。アプリケーション用に1人のサーバーユーザーを定義するだけです。次に、ユーザーを特定する(NTID、またはデータベースにあるユーザー名/パスワードテーブルを使用してログインする)方法を使用し、それを使用してアプリケーションでユーザーエクスペリエンスを構成します。

    関連する問題