Я знаю, что вы можете использовать только два режима: аутентификация Windows или SQL Server. Это означает, что вы ограничены только двумя вариантами: либо вы используете учетную запись Windows, либо создаете имя входа SQL Server, которое вы можете использовать для аутентификации.
EDIT:
Чтобы программно создать имя входа на сервер sql, вы можете использовать объекты Sql Server Management. Я заметил, что вы не сказали, хотите ли вы сделать это из Windows (настольного компьютера) или веб-приложения. Чтобы использовать 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 {} и программный код, чтобы сделать его более надежным, чтобы его можно было корректно восстановить в случае сбоя