Wiem, że można używać tylko dwóch trybów:Uwierzytelnianie Windows lub SQL Server. Oznacza to, że jesteś ograniczony tylko do dwóch opcji:używasz konta Windows lub tworzysz login SQL Server, którego możesz użyć do uwierzytelnienia.
EDYCJA:
Aby programowo utworzyć login do serwera sql, można użyć obiektów zarządzania serwerem SQL. Zauważyłem, że nie powiedziałeś, czy chcesz to zrobić z aplikacji Windows (komputer stacjonarny), czy z aplikacji internetowej. Aby użyć zarządzania serwerem Sql do utworzenia loginu (lub wykonania jakiegokolwiek "zarządzania"), kod musiałby działać z wyższymi uprawnieniami - powiedzmy konto lokalne lub domenowe z uprawnieniami wystarczającymi do administrowania instancją serwera SQL.
Będziesz musiał dodać odniesienia do (możesz użyć wersji 9.0 zestawów):
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum
Dzięki temu poniższy kod wystarczy, aby utworzyć login SQL, a także dodać użytkownika do docelowej bazy danych
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");
}
Musisz dodać:
using Microsoft.SqlServer.Management.Smo;
Możesz dodać bloki try{} catch{} i kod instalacyjny, aby uczynić go bardziej niezawodnym, abyś mógł z wdziękiem odzyskać w przypadku awarii