sql >> データベース >  >> RDS >> Sqlserver

SQL Server Express を使用して c#.net winform アプリケーションの複数のユーザーを作成する

    SQL Server では、Windows アカウントに基づくアカウント、または個別の特定の SQL アカウントのいずれかを持つことができます。どちらのバリエーションでも、ユーザーごとに 1 つのアカウントが必要です データベースを使用する必要があります。

    唯一の例外は、Windows セキュリティ グループ の SQL Server ログインを作成する機能です。 、例えばMyAppUsers 、そのログインのデータベース内のユーザー。これにより、そのセキュリティ グループ (Windows/AD 内) のメンバーである Windows アカウントにも、データベースを表示/使用する権限が付与されます。

    このアプローチでは、実際には Windows セキュリティ グループのメンバーシップのみに依存するため、データベースを使用できるユーザーの管理を SQL Server から移動することにもなります。

    1 つのログイン、1 つのユーザー - これでアクセス許可を取得する複数の Windows アカウント。私には勝者のようです!

    更新:

    Windows AD グループのログインを作成します:

    CREATE LOGIN [DOMAIN\GroupName] FROM WINDOWS
    

    そのログインに基づいてデータベースにユーザーを作成します:

    USE (your database)
    
    CREATE USER GroupNameUser 
    FOR LOGIN [DOMAIN\GroupName]
    

    SQL Server 接続の接続文字列:

    server=(your server);database=(your database);integrated security=SSPI;
    

    他に何が言えますか?

    更新 #2: コードではない Windows アカウントを使用する方法は次のとおりです:

    それぞれのログインを作成します アプリケーションを使用する必要があるユーザー

    CREATE LOGIN (some login name) WITH PASSWORD = 'Top$ecret'
    

    そのログインに基づいてデータベースにユーザーを作成します - 繰り返しますが、各ユーザーに 1 回 あなたのアプリの:

    USE (your database)
    
    CREATE USER UserName
    FOR LOGIN (some login name)
    

    SQL Server 接続の接続文字列:

    server=(your server);database=(your database);
      user id=UserName;Password=Top$ecret
    

    ただし、これには パスワードを含む 1 回のログインと各データベースに 1 人のユーザーが必要です データベースアプリから「パスワードのリセット」操作などを追跡し、おそらく実行する必要があります。管理オーバーヘッドに関しては、さらに多くのことができます!



    1. Laravel |一意の検証where句

    2. 未使用のmysql接続はスクリプトの速度を低下させますか?

    3. データを更新するためのPDOのフォーム

    4. mysqlテーブルの列で大文字と小文字を区別しないようにすることはできますか?