public bool UpdateAccount(ServerAccountModel serverAccount) { DatabaseServerUser databaseServerUser = null; DatabaseServerName databaseServerName = null; string serverName = "Serveur non trouvé"; try { // Obtention du serveur databaseServerName = this.db.DatabaseServerNames.Find(serverAccount.ServerId); if (databaseServerName == null) { return(false); } serverName = databaseServerName.Name; // Obtention du login SQL de l'utilisateur databaseServerUser = this.db.DatabaseServerUsers.SingleOrDefault(su => su.ServerId == serverAccount.ServerId && su.UserLogin.Equals(serverAccount.UserLogin, StringComparison.InvariantCultureIgnoreCase)); if (databaseServerUser == null) { return(false); } } catch (Exception ex) { LogManager.GetLogger().Error(ex); throw new DatabaseException(String.Format("Erreur dans l'obtention du compte utilisateur {0} dans le référentiel", serverAccount.ToString()), ex); } try { // Obtention du serveur réel : MySQL, SQL Server, ... avec son adresse IP DatabaseManagement management = DatabaseManagement.CreateDatabaseManagement(databaseServerName.Code, databaseServerName.IPLocale, databaseServerName.PortLocal); // Modification du mot de passe du login SQL sur le serveur management.AddOrUpdateUser(databaseServerUser.SqlLogin, serverAccount.Password); } catch (Exception ex) { LogManager.GetLogger().Error(ex); throw new DatabaseException(String.Format("Erreur dans la modification du compte utilisateur {0} sur le serveur '{1}'", serverAccount.ToString(), serverName)); } return(true); }
public DatabaseServerUser AddAccount(ServerAccountModel serverAccount) { DatabaseServerUser databaseServerUser = new DatabaseServerUser { ServerId = serverAccount.ServerId, UserLogin = serverAccount.UserLogin }; string serverName = "Serveur non trouvé"; try { // Obtention du serveur DatabaseServerName databaseServerName = this.db.DatabaseServerNames.Find(serverAccount.ServerId); if (databaseServerName == null) { return(null); } // Obtention du serveur réel : MySQL, SQL Server, ... avec son adresse IP DatabaseManagement management = DatabaseManagement.CreateDatabaseManagement(databaseServerName.Code, databaseServerName.IPLocale, databaseServerName.PortLocal); // Création du login SQL databaseServerUser.SqlLogin = management.MakeSqlLogin(serverAccount.UserLogin); // Ajout du login SQL sur le serveur management.AddOrUpdateUser(databaseServerUser.SqlLogin, serverAccount.Password); } catch (Exception ex) { LogManager.GetLogger().Error(ex); throw new DatabaseException(string.Format("Erreur dans l'ajout du compte utilisateur {0} sur le serveur '{1}'", serverAccount.ToString(), serverName), ex); } // Ajout de l'utilisateur pour cette BD try { db.DatabaseServerUsers.Add(databaseServerUser); db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { LogManager.GetLogger().Error(ex); throw new DatabaseException(string.Format("Erreur dans l'ajout du compte utilisateur {0} dans le référentiel", serverAccount.ToString()), ex); } return(databaseServerUser); }