Sziasztok!
Lenne egy olyan problémám, hogy egy SQL Server adatbázisát mentem SQLDMO segítségével. Elmentem egy fájlba, majd később visszaállítom. Ez addig rendben is van, amíg ugyanazt az adatbázist használom. Ha törlöm az adatbázist és újra ugyanúgy létrehozom (vagy egy másik szerveren állítom elő ugyanúgy az adatbázist) és ezután állítom vissza az elmentett fájlból, akkor nem működik számomra megfelelően (az adatbázist visszaállítja a fájl szerint, de van egy felhasználó, aki csak ahhoz az adatbázishoz fér hozzá, és ekkor, visszaállítás után nem kapja meg a jogokat).
Idézet:
protected void AdatbazisMentes(string fajlnev)
{
SQLDMO.SQLServer2Class szerver = new SQLDMO.SQLServer2Class();
szerver.Connect(Session["szerver"].ToString(), ((FelhasznaloiAdatok.FelhasznaloiAdatok)(Session["felhasznaloi_adatok"])).felhasznalo, ((FelhasznaloiAdatok.FelhasznaloiAdatok)(Session["felhasznaloi_adatok"])).jelszo);
try
{
SQLDMO.Backup2 biztMentes = new SQLDMO.Backup2Class();
biztMentes.Devices = biztMentes.Files;
biztMentes.Files = HttpContext.Current.Server.MapPath(fajlnev);
biztMentes.Database = Session["adatbazis"].ToString();
biztMentes.SQLBackup(szerver);
}
catch (Exception exc)
{
szerver.Close();
throw exc;
}
szerver.Close();
}
protected void AdatbazisVisszaallitas(string fajlnev)
{
SQLDMO.SQLServer2Class szerver = new SQLDMO.SQLServer2Class();
szerver.Connect(Session["szerver"].ToString(), ((FelhasznaloiAdatok.FelhasznaloiAdatok)(Session["felhasznaloi_adatok"])).felhasznalo, ((FelhasznaloiAdatok.FelhasznaloiAdatok)(Session["felhasznaloi_adatok"])).jelszo);
try
{
SQLDMO.Restore2 visszaallitas = new SQLDMO.Restore2Class();
visszaallitas.Devices = visszaallitas.Files;
visszaallitas.Files = fajlnev;
visszaallitas.Database = Session["adatbazis"].ToString();
visszaallitas.ReplaceDatabase = true;
visszaallitas.SQLRestore(szerver);
}
catch (Exception exc)
{
szerver.Close();
throw exc;
}
szerver.Close();
}