Det finns bara två lägen som jag vet att du kan använda:Windows eller SQL Server Authentication. Det betyder att du är begränsad till endast två val:antingen använder du ett Windows-konto eller så skapar du en SQL Server-inloggning som du kan använda för att autentisera.
EDIT:
För att programmatiskt skapa en sql-serverinloggning kan du använda SQL Server Management-objekt. Jag märker att du inte sa om du vill göra detta från en Windows (skrivbord) eller webbapplikation. För att använda SQL Server Management för att skapa en inloggning (eller göra någon form av "hantering"), skulle koden behöva köras med högre privilegier - säg lokalt eller domänkonto med tillräckliga privilegier för att administrera SQL-serverinstansen.
Du måste lägga till referenser till (du kan använda version 9.0 av sammansättningarna):
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum
Med det räcker följande kod för att skapa en SQL-inloggning och även lägga till användaren i din måldatabas
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");
}
Du måste lägga till:
using Microsoft.SqlServer.Management.Smo;
Du kan lägga till försök{} catch{}-block och VVS-kod för att göra den mer robust och du skulle kunna återställa graciöst i händelse av misslyckande