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 :

Droit sur un backup


Sujet :

Administration SQL Server

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut Droit sur un backup
    Bonjour,

    Je me connecte avec logmein tous les jours sur un serveur, pour effectuer et récupérer un backup de la base de données, via la commande backup database.

    Le but recherché est de ne plus se connecter directement sur la console du serveur, mais sur un de ses PC, pour lancer le backup.
    J'ai écris un bout de programme en c#, pour lancer le backup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                    SqlConnection ConnexionSQL = new SqlConnection();
                    SqlCommand CommandeSQL = new SqlCommand();
                   // La chaine de connexion utilisée dans notre ERP
                    ConnexionSQL.ConnectionString = " Integrated security = true;Initial Catalog = 'MaBase'; Data Source = 'MonServeur'";
                   ConnexionSQL.ConnectionString += "; user = 'sa'; password = ''";
                    ConnexionSQL.Open();
     
                    CommandeSQL.Connection = ConnexionSQL;
                    CommandeSQL.CommandText = "Backup database MaBase to disk = 'C:\\Transfert\\MaBase.bak'";
                    SqlDataReader sqlDtr = CommandeSQL.ExecuteReader();
                    sqlDtr.Close();
    Rien de bien original la dedans, mais il me répond

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Backup DataBase permission denied in DataBase MaBase
    Un backup ne pourrait donc se lancer que depuis la console du serveur ?

    Merci.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 874
    Points : 53 037
    Points
    53 037
    Billets dans le blog
    6
    Par défaut
    Vous vous connectez par deux entités de sécurité différentes dans votre chaine de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConnexionSQL.ConnectionString = " Integrated security = true;
    Signifie que vous utilisez votre compte système... Puis plus loin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConnexionSQL.ConnectionString += "; user = 'sa'; password = ''";
    Vous vous connectez aussi par le compte sa....

    Par conséquent il ne sait pas par quel pied danser !

    Le mieux serait d'ailleurs de lancer cela par une commande en ligne plutôt que d'utiliser un char d'assaut !

    Par exemple au niveau système :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLcmd -S"HPZ840FB\SQL2019FBIN2" -E -Q"BACKUP DATABASE MaBase TO DISK = 'MaBase.BAK' WITH COMPRESSION"
    A +

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut
    Bonjour SqlPro

    Je ne connaissais pas Sqlcmd, j'ai appris quelque chose.

    Mais j'ai toujours le même problème.

    Si je lance une simple requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ART_Libelle FROM Articles WHERE ART_Code = '000551'
    J'obtiens bien le libellé de mon article.

    Mais si je lance la requête Backup, il me répond

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    permission denied in database
    .

    Je creuse la doc de SqlCmd

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 874
    Points : 53 037
    Points
    53 037
    Billets dans le blog
    6
    Par défaut
    Cela veut tout simplement dire que vous n'avez pas les privilèges SQL Server pour lancer la commande BACKUP.

    Pour savoir si vous avez ce privilège, vous pouvez lancer la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT HAS_PERMS_BY_NAME (NULL, 'DATABASE' , 'BACKUP DATABASE') AS PRIVILEGE_BACKUP_DATABASE,
           HAS_PERMS_BY_NAME (NULL, 'DATABASE' , 'BACKUP LOG') AS PRIVILEGE_BACKUP_TRANSACTIONS
    Les deux colonnes doivent avoir la valeur 1

    A +

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut
    Bonjour


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT Has_PERMS_By_Name
    Renvoie la valeur NULL.

    Par contre, ça m'a mis sur la voie, et sur le poste, je me suis connecté avec le login de l'administrateur du réseau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT Has_PERMS_By_Name
    Renvoie toujours, la valeur NULL.
    Mais le backup fonctionne !!!

    On ne va pas trop chercher à creuser.
    Ca fonctionne, et c'est un vieux système appelé à disparaitre, on va s'en contenter.

    Merci pour le coup de main.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème droit sur un tablespace
    Par wazar dans le forum Administration
    Réponses: 11
    Dernier message: 05/01/2010, 15h12
  2. Réponses: 2
    Dernier message: 03/02/2005, 13h21
  3. Mount / fstab - Problème de droit sur une partition
    Par Chance666 dans le forum Administration système
    Réponses: 5
    Dernier message: 17/01/2005, 15h57
  4. [JSP][Javascript] click droit sur un lien
    Par Stessy dans le forum Servlets/JSP
    Réponses: 22
    Dernier message: 24/09/2004, 10h14
  5. [Système] Droits sur un fichier
    Par maxvador dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 16/07/2004, 17h06

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