0

Nous restaurons une base de données de sauvegarde SQL Server 2008 sur un serveur de base de données SQL Server 2012. La restauration se passe bien, les fichiers sont créés et la base de données est en ligne.Restauration des droits de base de données sur la base de données restaurée SQL Server 2012

Malheureusement, nous n'avons aucun droit sur la base de données, à part lire. Dans le passé, si je me souviens bien, nous pouvions supprimer des rôles/schémas de la base de données restaurée et donc, restaurer les autres droits de la base de données. Cela ne fonctionnera malheureusement pas maintenant ...

Quelqu'un peut-il nous aider ou nous diriger vers un site où nous pourrions remettre la sécurité à la base de données restaurée?

+0

Les utilisateurs ont-ils été correctement restaurés dans la base de données restaurée? Les connexions existent-elles dans l'instance de base de données? –

Répondre

0

Je ne l'ai pas essayé lors de la restauration vers une version différente du serveur SQL, mais il semble que vous ayez des utilisateurs orphelins et/ou des utilisateurs manquants.

Troubleshoot Orphaned Users (SQL Server)

Note: Je le fais dans une sp dynamique dans la db maître qui passe par tous les dbs i RESTORE et fixer les connexions des utilisateurs pour un nouvel environnement de développement.

Les étapes que je fais sont

  1. EXEC [@dbname] .dbo.sp_change_users_login 'Rapport' - Trouver Orpheline
  2. EXEC [@dbname] .dbo.sp_change_users_login 'Auto_Fix', @UserName - - Fix Orphaned si dans l'instance

Si le rapport renvoie des utilisateurs l'instance n'a pas J'ai également créer l'utilisateur. C'est seulement pour un environnement de développement, donc je l'ajusterais en conséquence.

  1. CREATE LOGIN @UserName avec mot de passe = '@Password', CHECK_POLICY = OFF - Créer l'utilisateur manquant
  2. EXEC [@dbname] .dbo.sp_change_users_login 'Auto_Fix', '@UserName', NULL, '@Password' - Correction Orphaned à l'utilisateur qui vient d'être créé.

J'espère que cela fonctionne pour votre cas.

+0

Bonjour sc_stang, merci pour votre réponse! J'ai suivi vos instructions. Le nombre d'orphelins était de 2 (dbo et td). Quand j'ai fait l'étape 2 (Autofix) pour td cela a fonctionné: La ligne pour l'utilisateur 'td' sera fixée en mettant à jour son lien de connexion à un login déjà existant. Le nombre d'utilisateurs orphelins corrigés par la mise à jour des utilisateurs était 1. Le nombre d'utilisateurs orphelins a été corrigé en ajoutant de nouvelles connexions et en mettant à jour les utilisateurs. – user3770992

+0

Mais quand j'ai fait la même chose pour l'utilisateur 'dbo' l'erreur suivante s'est produite ... Msg 15287, niveau 16, état 1, procédure sp_change_users_login, ligne 40 Terminer cette procédure. 'dbo' est une valeur interdite pour le paramètre de nom de connexion dans cette procédure. Est-ce que je fais quelque chose de mal? Est-ce que je manque quelque chose? – user3770992

+0

Je crois que l'exécution de sp_changedbowner 'sa' sur la base de données ajoutera la fonction sa au dbo qui corrigera l'erreur que vous voyez. sp_change_users_login ne fonctionnera pas avec dbo. –

Questions connexes