IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Restore d'une base avec choix des tables à restaurer


Sujet :

Administration SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut Restore d'une base avec choix des tables à restaurer
    Bonjour à tous!

    En ce moment je réalise un full restore (via un script en t-sql) d'une base depuis un fichier de backup .bak et cela marche bien mais je dois amélioré cela en faisant un restore de ma base mise à part quelques tables...

    En effet lorsque je fait mon restore de la base, je "perds" les droits utilisateurs qui sont stockés dans la table sysUserInfo() que je souhaiterai ne pas restaurer si cela est possible bien entendu.

    Si vous avez n'importe quelle question, je vous répondrai volontier afin que NOUS puissions résoudre ce problème.

    Bien à vous!
    Carla.J

    Petites infos complémentaires:
    -Windows Server 2008 R2
    -Microsoft SQL Server 2005

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par CarlaJohnson Voir le message
    Bonjour à tous!

    En ce moment je réalise un full restore (via un script en t-sql) d'une base depuis un fichier de backup .bak et cela marche bien mais je dois amélioré cela en faisant un restore de ma base mise à part quelques tables...
    La restauration => restaure la base complète.
    Si tu veux éliminer certaines tables après, tu peux faire des DELETE des tables concernées après la restauration. Non ?

    A+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par zinzineti Voir le message
    Si tu veux éliminer certaines tables après, tu peux faire des DELETE des tables concernées après la restauration. Non ?
    Ben cela ne résouds pas mon problème car si je restore totalement je perds alors ma table sysUserInfo() que je veux garder.

    Je sais pas si je me suis bien fais comprise

    Admettons que j'ai 4 tables: test, test1, sysUserInfo_AVANT_RESTORE(), test2

    Si je fais ce que tu me propose j'aurai alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test_APRES_RESTORE, test1_APRES_RESTORE, sysUserInfo_APRES_RESTORE(), test2_APRES_RESTORE
    Mais ce que je souhaite est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test_APRES_RESTORE, test1_APRES_RESTORE, sysUserInfo_AVANT_RESTORE(), test2_APRES_RESTORE
    Je sais pas si c'est plus explicite comme ca...

    ________________________________________________________________

    EDIT: Je ne mis connais pas plus que ca mais est-il possible de passer par un fichier excel...ou autre?

    Je m'explique:
    1) Je sauvegarde la base que je veux quelques part pour que je puisse la réintégrer dans la base plus tard. (fichier excel ou quelques chose de mieux je sais pas...)
    2) Restaurer intégralement ma base.
    3) Supprimer la table sysUserInfo()
    4) Importer ma table que j'avais sauvegarder avant le restore...

    C'est une idée et c'est peut-être n'importe quoi...

  4. #4
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Attention, il d'abord bien se renseigner sur cette table avant de faire le DELETE puis l'import de données de l'ancienne vers la nouvelle !

    Voici une petite note sur la table sysUserInfo()

    Use of this table might lead to an Elevation of Privileges attack or a Denial of Service attack. Therefore, the AOSAuthorization property is set to CreateDelete. The Application Object Server authorizes each create and delete action on the table by confirming that the current user has permission to perform the requested operation on that table. If the user who initiates the operation is not authorized to perform the operation, an exception is thrown.

    Source ICI

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut
    J'ai créée un fichier de script .bat qui appelle un script sql pour exporter la table dans un fichier text

    Script .bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQLCMD -E -Sserver\InstanceName -i script.sql
    pause
    Script .sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bcp Dynamics.dbo.SYSUSERINFO out D:\test.txt -c -UEBS-SVC-AX -Sserver\InstanceName
    Cependant j'ai une erreur lorsque je lance le .bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Incorret syntax near ´.´
    Sympa mais quel point...?

    J'ai essayé toutes les syntaxes possible je pense...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    bcp n'est pas une commande SQL mais un programme comme SQLCMD

    depuis une fenêtre de commande en ligne, lancez simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bcp Dynamics.dbo.SYSUSERINFO out D:\test.txt -c -UEBS-SVC-AX -Sserver\InstanceName

  7. #7
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Essaye ceci pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bcp Dynamics.dbo.SYSUSERINFO out "D:\test.txt" -c -U"EBS-SVC-AX" -P"Motdepasse" -S"server\InstanceName"

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut
    Je me pose une question essentielle tout de même...

    Quel est le User que je dois utiliser? Celui qui exécute le service SQL Server?


  9. #9
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Si tu fournis un login/pwd (les options -U et -P) au bcp c'est forcément un compte d'authentification SQL Server qui peut se connecter à l'instance
    (-S"server\InstanceName")

  10. #10
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Je te propose de tester d'abord ton bcp directement depuis la console DOS.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut
    Alors je n'ai pas le mot de passe du user qui execture le service: SQL Server (CONCNA) qui est GLOBAL\EBS-SVC-DYNSQNA-DB (voir image du post ci-dessus).

    Je vais demander ce mot de passe du user et je test ça.

    Merci d'être la les gars!

    Thx!

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Tu ne devrais pas utiliser le compte de démarrage de l'instance SQLServer mais plutôt un login qui a les droits de lecture sur la table que tu veux extraire.
    Regarder dans le répertoire Sécurité de la base Dynamics, tu devrais pouvoir utiliser un des logins existant. Tu peux également créer un login dédiée à cette extraction de données...

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut
    J'execute cette commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bcp Dynamics.dbo.SYSUSERINFO out "D:\test.txt" -c -U"EBS-SVC-AX" -P"Motdepasse" -S"server\InstanceName"
    Message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Incorrect syntax near '.'
    Comprends pas très bien la...

  14. #14
    Membre habitué
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Points : 137
    Points
    137
    Par défaut
    Bonjour à tous...
    d'après votre discution(très interessante d'ailleurs),il semble qu'il ne soit pas possible, à partir d'une sauvegarde de base, d'effectuer la retauration d'une seule table..
    Me trompe-je ?


    PS : Moi aussi j'ai quelque problème avec l'utilitaire 'bcp' qui, malgré une bonne syntaxe, n'arrive pas à trouver mon serveur cible (le ping serveurcible est bon !)... ça m'ennnerve !

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    Me trompe-je ?
    Non, c'est bien ça

    PS : Moi aussi j'ai quelque problème avec l'utilitaire 'bcp' qui, malgré une bonne syntaxe, n'arrive pas à trouver mon serveur cible (le ping serveurcible est bon !)... ça m'ennnerve !
    Ouvre un autre file de discussion si tu veux de l'aide stp, ca sera plus pratique.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par genio Voir le message
    Me trompe-je ?
    Idem, tu as raison.

    C'est pour cela que je veux exporter une table dans un fichier texte/csv que j'importerai après le restore de ma base, mais je bloque complet la!

  17. #17
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Citation Envoyé par CarlaJohnson Voir le message
    Idem, tu as raison.

    C'est pour cela que je veux exporter une table dans un fichier texte/csv que j'importerai après le restore de ma base, mais je bloque complet la!
    Bon va procédé étape par étape

    D'abord, lance la console DOS

    puis exécute la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bcp Dynamics.dbo.SYSUSERINFO out "D:\test.txt" -c -T -S"server\InstanceName"
    et donne nous le résultat

  18. #18
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut
    Voici le printscreen de l'erreur (de droits je crois):


  19. #19
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 29
    Points
    29
    Par défaut
    Hop hop hop!

    J'ai changé le repertoire du fichier test.txt et la copie à marché sur mon repertoire perso...



    Je n'avais pas les droits sur le D: d'après ce que je viens de voir...

    Mon fichier test se créer bien.

    Est-ce que je peux mettre ce petit bout de code dans un fichier .sql et l'executer à partir d'un .bat?

  20. #20
    Membre habitué
    Homme Profil pro
    CMA-CGM
    Inscrit en
    Novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2005
    Messages : 531
    Points : 137
    Points
    137
    Par défaut
    Merci pour vos réponses sur la restauration...

    Une autre question : Vous voulez sauvegarder la table SYSUSERINFO (chez moi, cette table n'existe que sous le nom de la SYSUSERS), pour ensuite la réinjecter après votre restauration => OK
    1° Mais êtes vous sure que cela suffira pour que vos users refonctionnent ?

    D'après ce que je lis, les 'users' sql/server sont intimements liés aux 'logons' ... Ok

    Pour moi, la restauration que vous proposez (restauration database entière et chargement de la table SYSUSER) ne peut fonctionner qu'en cas d'une restauration sur un même serveur BaseA/ServerA vers BaseB/ServerA (ou BaseA/ServerA)./.
    Etes-vous sûre que votre restauration BaseA/ServeurA vers BaseA/ServerB (autre serveur) fonctionnerait avec cette méthode...

    J'espère être clair !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [AC-2007] Copier une base Access comprenant des tables liées
    Par Pixel dans le forum VBA Access
    Réponses: 10
    Dernier message: 29/03/2014, 21h54
  2. [Toutes versions] Lier une base Access 97 à des tables d'une base Access 2010
    Par jehhej dans le forum Modélisation
    Réponses: 2
    Dernier message: 03/01/2014, 15h48
  3. XAMPP : comment créer une base de données, des tables
    Par raton_laveur dans le forum MySQL
    Réponses: 0
    Dernier message: 22/10/2008, 12h04
  4. Commande OSQL, Restore d'une base avec MOVE
    Par smooncef dans le forum Outils
    Réponses: 6
    Dernier message: 16/04/2008, 09h25
  5. Optimisation d'une base avec des tables liés
    Par snoopy69 dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo