使用できることがわかっているモードは、Windows または SQL Server 認証の 2 つだけです。つまり、Windows アカウントを使用するか、認証に使用できる SQL Server ログインを作成するという 2 つの選択肢しかありません。
編集:
SQL Server ログインをプログラムで作成するには、Sql Server Management オブジェクトを使用できます。これを Windows (デスクトップ) から行うか、Web アプリケーションから行うかについて、あなたが言及していないことに気付きました。 Sql Server Management を使用してログインを作成する (または何らかの「管理」を行う) には、コードをより高い特権 (SQL サーバー インスタンスを管理するのに十分な特権を持つローカル アカウントまたはドメイン アカウントなど) で実行する必要があります。
への参照を追加する必要があります (アセンブリのバージョン 9.0 を使用できます):
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum
これで、SQL ログインを作成し、ターゲット データベースにユーザーを追加するには、次のコードで十分です
var serverName = "."; // Your SQL Server Instance name
var databaseName = "Test"; // Your database name
var loginName = "testuserY"; // Your login name (should not exist - or you should add code to check if the login exists)
Server svr = new Server(serverName);
var db = svr.Databases[databaseName];
if (db != null)
{
// You probably want to create a login and add as a user to your database
Login login = new Login(svr, loginName);
login.DefaultDatabase = "master"; // Logins typically have master as default database
login.LoginType = LoginType.SqlLogin;
login.Create("foobar", LoginCreateOptions.None); // Enter a suitable password
login.Enable();
User user = new User(db, loginName);
user.UserType = UserType.SqlLogin;
user.Login = login.Name;
user.Create();
// add a role
user.AddToRole("db_owner");
}
以下を追加する必要があります:
using Microsoft.SqlServer.Management.Smo;
try{} catch{} ブロックと配管コードを追加して、より堅牢にすることで、障害が発生した場合に正常に回復できます