Es gibt nur zwei Modi, von denen ich weiß, dass Sie sie verwenden können:Windows- oder SQL Server-Authentifizierung. Das bedeutet, dass Sie auf nur zwei Möglichkeiten beschränkt sind:Sie verwenden entweder ein Windows-Konto oder Sie erstellen eine SQL Server-Anmeldung, mit der Sie sich authentifizieren können.
BEARBEITEN:
Um programmgesteuert eine SQL Server-Anmeldung zu erstellen, können Sie Sql Server Management-Objekte verwenden. Mir ist aufgefallen, dass Sie nicht gesagt haben, ob Sie dies von einer Windows- (Desktop-) oder einer Webanwendung aus tun möchten. Um Sql Server Management zum Erstellen eines Logins zu verwenden (oder irgendeine Art von „Verwaltung“), müsste der Code mit höheren Rechten ausgeführt werden – sagen wir lokales oder Domänenkonto mit ausreichenden Rechten, um die SQL Server-Instanz zu verwalten.
Sie müssen Verweise hinzufügen auf (Sie könnten Version 9.0 der Assemblys verwenden):
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum
Damit reicht der folgende Code aus, um ein SQL-Login zu erstellen und den Benutzer auch zu Ihrer Zieldatenbank hinzuzufügen
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");
}
Sie müssen hinzufügen:
using Microsoft.SqlServer.Management.Smo;
Sie können try{} catch{}-Blöcke und Installationscode hinzufügen, um es robuster zu machen, damit Sie es im Falle eines Fehlers problemlos wiederherstellen können