Chỉ có hai chế độ mà tôi biết bạn có thể sử dụng:Xác thực Windows hoặc SQL Server. Điều này có nghĩa là bạn chỉ có hai lựa chọn:Bạn sử dụng tài khoản Windows hoặc tạo thông tin đăng nhập SQL Server mà bạn có thể sử dụng để xác thực.
CHỈNH SỬA:
Để tạo đăng nhập máy chủ sql theo chương trình, bạn có thể sử dụng các đối tượng Quản lý máy chủ Sql. Tôi nhận thấy rằng bạn không nói bạn muốn thực hiện việc này từ ứng dụng Windows (máy tính để bàn) hay Web. Để sử dụng Sql Server Management để tạo thông tin đăng nhập (hoặc thực hiện bất kỳ loại "quản lý" nào), mã sẽ cần chạy với các đặc quyền cao hơn - giả sử tài khoản cục bộ hoặc miền có đủ đặc quyền để quản lý phiên bản máy chủ SQL.
Bạn sẽ cần thêm các tham chiếu vào (bạn có thể sử dụng phiên bản 9.0 của các hội đồng):
Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum
Với điều đó, mã sau là đủ để tạo thông tin đăng nhập SQL và cũng có thể thêm người dùng vào cơ sở dữ liệu mục tiêu của bạn
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");
}
Bạn sẽ cần thêm:
using Microsoft.SqlServer.Management.Smo;
Bạn có thể thêm khối try {} catch {} và mã đường ống dẫn nước để làm cho nó mạnh mẽ hơn, bạn có thể khôi phục một cách dễ dàng trong trường hợp bị lỗi