Av
Dag Staale @ april 29, 2007 01:03 ::

:: 725 Visninger
Min oppgave bestod i å flytte en MS SQL Server 2000 database fra en SQL Server til en annen. For å gjøre dette brukte jeg Backup Exec som jeg konfigurerte til å ta backup til disk. På den nye serveren kopierte jeg så Backup Exec backupfilene til en nyopprettet backup til disk katalog. Deretter brukte jeg inventory for så å gjenopprette databasen i den nye SQL Serveren.
Problemstillingen jeg da stod ovenfor var at det i databasen var definert er bruker med rettigheter som dbo (under logins i databasen) og at denne brukeren ikke befant seg i logins under security i den nye SQL Serveren. Dette et forhold jeg har rettetopp mange ganer, men denne gangen fikk jeg uventede problemer.
Det prosedyren jeg fulgte først var som følger:
· Åpner Enteprise Manager, navigerer til Security, høyreklikker login og oppretter en identisk bruker med samme passord som i databasen under login. Deretter spesifiserer jeg også databasen for denne brukeren og får en feilmelding.
· Etter dette åpner jeg Sql Query Analyser og benytter følgende komandoer for å sammkjøre de to brukerne.
use MinDatabase
go
exec sp_change_users_login ‘Auto_Fix’, BrukerNavn, NULL, Passord
go
Mitt problem denne gangen var at jeg fikk følgende feilmelding:
Procedure or function sp_change_users_login has too many arguments specified
Det som reddet meng var da å bruke følgende komandoer:
use MinDatabase
go
exec sp_change_users_login 'UPDATE_ONE','BrukerNavn','BrukerNavn'
go
Den første gangen jeg var borti denne saken hadde jeg følgende feilmelding når jeg forsøkte å koble meg opp til den gjenopprettede databasen:
Connection failed:
SQLState: ’42000’
SQL Server Error: 4064
[Microsoft][ODBC SQL Server Drive][SQL Server]
Cannot open user default database. Login failed.
og
Error 21002: [SQL-DMO]User ‘database account’ already exists.
og
The login MyDatabase has not been granted access to their default database: MyDatabase and therefore will not be able to gain access to the default database. Continue?
Den gangen fant jeg følgende: http://msdn2.microsoft.com/en-us/library/aa259633(SQL.80).aspx
