Er zijn slechts twee modi waarvan ik weet dat u ze kunt gebruiken:Windows- of SQL Server-verificatie. Dit betekent dat u beperkt bent tot slechts twee keuzes:u gebruikt een Windows-account of u maakt een SQL Server-login die u kunt gebruiken om te verifiëren.
BEWERKEN:
Om programmatisch een sql-serveraanmelding te maken, kunt u Sql Server Management-objecten gebruiken. Ik merk dat je niet hebt aangegeven of je dit vanuit een Windows (desktop) of webapplicatie wilt doen. Om Sql Server Management te gebruiken om een login aan te maken (of enige vorm van "beheer"), zou de code met hogere privileges moeten worden uitgevoerd, bijvoorbeeld een lokaal of domeinaccount met voldoende privileges om de SQL-serverinstantie te beheren.
U moet verwijzingen toevoegen naar (u zou versie 9.0 van de assemblages kunnen gebruiken):
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum
Daarmee is de volgende code voldoende om een SQL-login aan te maken en de gebruiker ook toe te voegen aan uw doeldatabase
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");
}
U moet toevoegen:
using Microsoft.SqlServer.Management.Smo;
U kunt try{} catch{}-blokken en loodgieterscode toevoegen om het robuuster te maken, u zou het gracieus herstellen in geval van een storing