Jag skall kopiera data från en database till en annan. Databaserna ligger på olika servrar och den ena är SQL2000 och den andra SQL2005. Lägg upp det via Maintenance Plans (dyker automatiskt upp under jobb). Hur gör du SELECT * FROM OPENQUERY som ett maintenancejob?SQLAgent användare
Själva kopieringen har jag löst men har problem men användaren.
Båda databaserna använder windows autentisering och jag har en domänanvändare som har rättigheter i båda databaserna. Problemet är att jag inte kan få sql-agenten att köra jobbet som den användaren.
(Jag använder SQLagenten på SQL2005 servern)
När jag lägger upp jobbet finns det en "run as" ruta på varje steg men det finns inga användare att välja i den. Under avancerat finns det en annan "run as" ruta men där kan bara välja logins i sql2005 databasen.
Jobbet är ett vanligt T-SQL script som gör ungefär så här:
sp_addlinkedserver ...
INSERT INTO tabell1 (...) SELECT * FROM OPENQUERY(...)
sp_dropserverSv: SQLAgent användare
Provade också att skapa ett nytt jobb direkt från Jobs.
Fick inte heller något alternativ under Run as:.
Jobben som jag skapat via Maintenance Plans får automatiskt SQL Agent Service Account.
/HåkanSv:SQLAgent användare
Löste det tillfälligt med
sp_addlinkedsrvlogin
men då måste jag ange lösenordet i klartext i scriptet vilket inte känns så bra.