1 votes

Exportation de données à partir de Microsoft SQL Server

J'ai une application qui utilise une base de données Microsoft SQL Server fonctionnant sur le PC1.

J'ai configuré cette application sur un autre PC (PC2) :

  1. J'ai installé l'application sur PC2
  2. L'application crée la base de données A sur le PC2 (l'application fonctionne).
  3. Je fais une sauvegarde de la base de données A sur les deux PC.
  4. J'ai restauré la sauvegarde de la base de données A de PC1 à PC2.
  5. L'application ne fonctionne pas. Impossible de se connecter.
  6. J'ai restauré la sauvegarde de la base de données A de PC2 sur PC2 (l'application fonctionne).

La seule chose qui pourrait résoudre ce problème serait d'exporter les données dans un fichier SQL, mais je ne sais pas comment.

J'utilise Microsoft SQL Express 2005.

4voto

Katherine Villyard Points 18470

Je pense que votre problème est utilisateurs orphelins . En fait, vos utilisateurs et vos identifiants peuvent avoir le même nom, mais ils ont des identifiants différents sur les différentes instances.

Voici un script pour montrer le problème (repris du lien) :

USE MASTER
GO 
SELECT name as SQLServerLogIn,SID as SQLServerSID FROM sys.syslogins
WHERE [name] = 'YourAppUser'
GO

USE YourAppDB
GO 
SELECT name DataBaseID,SID as DatabaseSID FROM sysusers
WHERE [name] = 'YourAppUser'
GO

Ou, vous pouvez juste le réparer. Il y a une procédure intégrée pour cela. Restaurez la base de données du premier PC sur le second PC et exécutez :

USE YourAppDB
GO 
exec sp_change_users_login @action='update_one',@usernamepatter='YourAppUser',@loginname='YourAppUser'
GO

J'ai déjà eu à l'exécuter sur un grand nombre de bases de données, donc j'en ai, qui traînent :

execute sp_MSforeachdb 'USE [?]; exec sp_change_users_login @action=''update_one'',@usernamepattern=''YourAppUser'',@loginname=''YourAppUser'''

(Ceci utilise la procédure non documentée sp_MSforeachdb pour lancer cette commande sur chaque base de données).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X