Newsgroup: it.comp.software.database
Titolo: Migrazione Sql su altro Server

Ciao a tutti,
dunque ho la necessità di migrare gli 8 DB del SqlServer su un server
più performante. Spulciando i vostri vecchi topic uno dei problemi
principali è quello degli utenti "orfani", rimediabile tramite la
sp_change_users_login. In effetti sia effettuando il detach dei DB source
e il seguente attach nel nuovo DB, oppure tramite il Backup/Restore, gli
utenti devono sempre essere linkati nuovamente. 
Vorrei però sapere se è possibile evitare di eseguire manualmente la
sp_change_users_login per ogni singolo utente e per ogni database a cui
deve essere linkato. Se si potessero accorpare tutti gli utenti e poi
lanciare il comando una volta sola per ogni DB sarebbe meglio. Altrimenti
io ho 40 utenti e 8 database, quindi sono costretto a lanciare il comando
360 volte!
Spero di aver spiegato decentemente il problema, grazie.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Spero di aver spiegato decentemente il problema, grazie.
Certo, prego.
Ciao!
-- 
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://italy.mvps.org
 

 
http://msdn2.microsoft.com/en-US/library/ms174378.aspx
Ciao Lorenzo, ho verificato la sp_change_users_login con l'opzione
auto_fix che è quella che fa al caso mio, l'ho anche già testata.
Non mi pare di aver trovato però un'pzione della store procedure che
permetta di linkare contemporanemante tutti gli utenti ai vari Db mi sa
che non c'è....:-(


 sa che non c'è....:-(
Chiamiamo le cose con il loro nome, altrimenti non ci capiamo :-)
Con "utenti" cosa intendi? Login o user accounts?
La sp_change_users_login agisce nel contesto del database corrente, quindi 
se hai utilizzato login SQL Server che intendi mappare agli omonimi user 
accounts direi che la clausola Auto_Fix esegue in automatico questo compito.
Questa operazione andrà ripetuta per gli 8 database.


 Ciao!
Hai ragione tento di chiarire.Tramite dts migro tutti gli user (cioè gli
utenti che hanno accesso ai vari DB con differenti permission) dal
Dbserver Source al Dbserver nuovo. Sul nuovo Server, tramite la
sp_change_users_login, collego gli utenti del database a un account di
accesso di SQL. Per farlo però devo lanciare il comando n volte quanti
sono gli utenti e i db che devo rimappare.
In pratica poniamo che io abbia nel db source 3 db A,B,C e a questi db
possono collegarsi 3 utenti x,y,z.
Porto i db a,b,c nel nuovo server tramite backup/restore, poi migro
tramite DTS gli utenti x,y,z.
Questi utenti non riusciranno a connettersi ai db fin quando non saranno
rimappati. Per farlo devo comportarmi un questo modo:
dal db A lancio
sp_change_users_login 'Auto_Fix', 'x' 
poi
sp_change_users_login 'Auto_Fix', 'y' 
poi
sp_change_users_login 'Auto_Fix', 'x' 
e così via per il db B e il C.
Mi piacerebbe che lancianodo sp_change_users_login 'Auto_Fix' (senza
specificare l'utente), cambiando però dopo ogni lancio il db di
riferimento,  tutti gli utenti verrebbero mappati senza dover specificare
ogni volta l'utente. 
Ce l'ho fatta a non fare troppo casino con la spiegazipone?


 accesso di SQL.
Con "account di accesso di SQL" ti riferisci ad una login?
Scusa, che senso ha avere n user accounts mappati ad una sola login?!
Generalmente il mappaggio č 1 a 1.


 Generalmente il mappaggio è 1 a 1.
no, volevo dire che gli n user dei DB devono essere rimappati con i
rispettivi Login, cioè i rispettivi account di accesso SQL.
Ciao


 rispettivi Login, cioè i rispettivi account di accesso SQL.
Quindi l'opzione Auto_Fix fa al caso tuo (sempre che user account e login si 
chiamino allo stesso modo).
