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

Développement SQL Server Discussion :

Accès réseau d'un Agent SQL Server ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut Accès réseau d'un Agent SQL Server ?
    Hello,

    Je souhaite mettre en place une sauvegarde planifiée de mes bdd sql server depuis un serveur en réseau.

    Pour mes essais, j'ai créé un dossier partagé avec les droits liés au compte depuis lequel je me connecte sur mon serveur.

    En tentant un backup avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BACKUP DATABASE pioupiou TO DISK = '\\Mamachinesurlereseau\mondossierpartage\BACKUP\pioupiou.bak'
    J'ai une erreur 53 (chemin réseau non trouvé).

    J'ai cherché ensuite à tester les accès avec un xp_fileexist
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @fileexists INT
    EXECUTE xp_fileexist '\\Mamachinesurlereseau\mondossierpartage\delta.txt', @fileexists OUTPUT
    SELECT @fileexists
    qui me retourne 0.


    à noter que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @fileexists INT
    EXECUTE xp_fileexist 'C:\windows\explorer.exe', @fileexists OUTPUT
    SELECT @fileexists
    me renvoie bien 1
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @fileexists INT
    EXECUTE xp_fileexist 'C:\temp\log.txt', @fileexists OUTPUT
    SELECT @fileexists
    me renvoie 0

    Aussi je me pose la question de savoir si les C:\ sont sur le poste sur lequel je travail oui bien sur le serveur sur lequel SQL Server est installé ?

    Et le cas échéant, à quel compte dois-je relier les droits d'accès au dossier partagé ?

    Merci d'avance pour vos idées.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Re,

    donc j'avance en ayant confirmation que les disques durs C:\ et co ne sont pas ceux de la machine sur laquelle je suis connectée.

    En utilisant les informations de ce blog : http://blog.developpez.com/sqlpro/p9...ous-ms-sql-se/
    J'ai pu voir la liste des dossiers de "C:\"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC master.sys.xp_subdirs 'C:\'
    qui m'affiche des dossiers autres que ceux de ma machine.

    Je tente donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC master.sys.xp_subdirs '\\Mamachine\mondossierpartage'
    et tombe sur l'erreur 53 évoquée plus haut.

    A défaut d'avoir la solution complète, j'en profite pour apprendre la vision du serveur SQL ^^
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Lorsque tu fais une sauvegarde depuis :

    - La console SSMS c'est le compte de service SQL qui est utilisé pour faire la sauvegarde
    - Un job SQL, tout dépend comment est configuré ta sécurité. Qui est le propriétaire du job en question ? Est-il sysadmin du serveur SQL ?

    ++

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Le propriétaire du job est aussi sysadmin.
    le compte de service SQL, je suppose que c'est celui SUR le serveur où SQL est intallé... y a-t-il un moyen de le savoir depuis SSMS par exemple ?

    Autre point, lorsque j'exécute le script de sauvegarde avec un répertoire créé sur le C:\ du serveur, cela fonctionne.

    Le fichier est bien créé et on le voit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE @fileexists INT
    EXECUTE xp_fileexist 'C:\tempJPA\pioupiou_20120709102636.bak', @fileexists OUTPUT
    SELECT @fileexists
    retourne 1

    reste que le job qui doit executer le backup plante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BACKUP DATABASE pioupiou TO DISK = N'C:\tempJPA\pioupiou_..bak' WITH INIT, SKIP, STATS = 100
    Error 2812.

    A noter que le journal m'indique j'ai exécuté cette tâche "as user : Domaine\servicesql ".

    Je n'arrive pas à savoir comment :
    - soit donner les droits au user
    - soit que l'erreur vient d'ailleurs
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Dans ce cas c'est le compte de service de l'agent SQL qui est utilisé quand tu lances un backup via un job.

    Si les comptes de services sont différents pour le moteur et l'agent SQL il faut paramétrer les droits adéquats pour l'agent SQL puisque visiblement cela fonctionne avec le compte du service du moteur.

    ++

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    OK,
    alors, en lancant en dur le script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BACKUP DATABASE pioupiou TO DISK ='C:\tempJPA\pioupioubak.bak'
    cela fonctionne.

    Lors je passe par une procédure stockée (pour avoir un incrément date + heure.
    J'essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC pioupiou.dbo.PsBackupAllDatabases
    avec PsBackupAllDatabases :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    USE [pioupiou]
    GO
    /****** Object:  StoredProcedure [dbo].[PsBackupAllDatabases]    Script Date: 07/09/2012 13:34:50 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
     
    ALTER PROCEDURE [dbo].[PsBackupAllDatabases]
    AS
    BEGIN
    	DECLARE @SQL VARCHAR(255)
    	DECLARE @dateToday CHAR(14)
    	SELECT @dateToday = convert(varchar, getdate(), 112) + replace(convert(varchar, current_timestamp, 108), ':', '')
    	DECLARE @cheminSauvegarde VARCHAR(255) SET @cheminSauvegarde = 'C:\tempJPA\'
     
    	DECLARE curBD CURSOR FOR
    		SELECT name
    		FROM sys.databases
    		WHERE name NOT IN ('master','ReportServer', 'msdb', 'model', 'tempDB')
    	FOR READ ONLY
     
    	DECLARE @nomBD SYSNAME
     
    	OPEN curBD
    	FETCH NEXT FROM curBD INTO @nomBD
    	WHILE @@FETCH_STATUS = 0
    	BEGIN
    		SET @SQL = 'BACKUP DATABASE ' + @nomBD + 
    					' TO DISK = ''' + @cheminSauvegarde + @nomBD + '_' + @dateToday +
    					'.bak''' + ' WITH INIT, SKIP, STATS = 100'
     
    		--PRINT @SQL
    		EXEC @SQL
     
    		FETCH NEXT FROM curBD INTO @nomBD	
    	END
     
    	DEALLOCATE curBD
    END
    mais là j'ai un problème.

    J'en viens donc à conclusion que le compte ServiceSQL n'est pas en cause.

    Ou alors mon problème vient vraiment purement et simplement de ma PS...
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Bon, alors en court-circuitant la boucle (je l'ai utilisé car elle apparaissait dans un exemple de script, j'arrive à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    -- ================================================
    -- Template generated from Template Explorer using:
    -- Create Procedure (New Menu).SQL
    --
    -- Use the Specify Values for Template Parameters 
    -- command (Ctrl-Shift-M) to fill in the parameter 
    -- values below.
    --
    -- This block of comments will not be included in
    -- the definition of the procedure.
    -- ================================================
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:	<Description,,>
    -- =============================================
    ALTER PROCEDURE [Piou]
    AS
    BEGIN
    DECLARE @SQL VARCHAR(255)
    	DECLARE @dateToday CHAR(14)
    	SELECT @dateToday = convert(varchar, getdate(), 112) + replace(convert(varchar, current_timestamp, 108), ':', '')
    	DECLARE @cheminSauvegarde VARCHAR(255) SET @cheminSauvegarde = 'C:\tempJPA\'
     
    		SET @SQL = 'BACKUP DATABASE ' + 'pioupiou' + 
    					' TO DISK = ''' + @cheminSauvegarde + 'pioupiou' + '_' + @dateToday +
    					'.bak'''
    		PRINT @SQL
    		EXEC (@SQL)
    	end
    GO
    j'exécute ma stored procedure Piou avec
    et c'est bien executé comme il faut

    Merci pour les pistes évoquées ici et pour les tutos dispos à ce sujet !

    je reste ouvert à d'éventuelles remarques/explcations quant à ce changement de comportement du code
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/12/2008, 13h30
  2. QUEL PORT POUR ACCES A DISANCE SUR DB SQL SERVER 2000 ?
    Par titanserver dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/08/2007, 16h52
  3. Réponses: 4
    Dernier message: 16/04/2007, 10h54
  4. Agent sql server et job
    Par WELCOMSMAIL dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 14/04/2006, 14h26
  5. Agent sql server
    Par WELCOMSMAIL dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/04/2006, 11h20

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