1) Если уже есть логин user1, я создаю пользователя user1 для базы данных db1, вызывая CreateDatabaseUser
function
2) Иначе, я создаю логин 'user1' с паролем 'password1' с базой данных по умолчанию как 'db1' (только после создания db1), используя CreateServerLogin
, а затем создаю пользователя 'user1' для 'db1', используя CreateDatabaseUser
Метод (2) создает исключение в
newUser.Create();
в CreateDatabaseUser
говоря: Microsoft.SqlServer.Management.Smo.FailedOperationException: Create failed for User 'user1'. ---> Microsoft.SqlServer.Management.Common.ExecutionFailureException: An exception occurred while executing a Transact-SQL statement or batch. --- > System.Data.SqlClient.SqlException: '[user1]' is not a valid login or you do not have permission.
В чем может быть проблема?
private static Login CreateServerLogin(Server server, string database, string login, string password)
{
var newLogin = new Login(server, login)
{
LoginType = LoginType.SqlLogin,
DefaultDatabase = database,
PasswordPolicyEnforced = false
};
newLogin.Create(password);
return newLogin;
}
private static User CreateDatabaseUser(Database database, string user, string login)
{
var newUser = new User(database, user) { UserType = UserType.SqlLogin, Login = login };
newUser.Create();
newUser.AddToRole("db_owner");
return newUser;
}