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

Réplications SQL Server Discussion :

replication vb (ou c#) : quel login.pwd mettre dans subscription.SynchronizationAgentProcessSecurity


Sujet :

Réplications SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 79
    Points
    79
    Par défaut replication vb (ou c#) : quel login.pwd mettre dans subscription.SynchronizationAgentProcessSecurity
    Bonjour,

    Je tourne en rond depuis un moment. J'ai une application vb grâce à laquelle un utilisateur peut créer un abonnement puis répliquer une base sql serveur sur son pc contenant sql server express.

    Question toute simple je pense mais je ne trouve pas comment faire, j'ai le bout de code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    subscription = New MergePullSubscription()
    subscription.ConnectionContext = conn
    subscription.PublisherName = sPublisherName
    subscription.PublicationName = sPublicationName
    subscription.PublicationDBName = sPublicationDbName
    subscription.DatabaseName = sSubscriptionDbName
     
       subscription.SynchronizationAgentProcessSecurity.Login = "Domaine\LoginDuDomaine"
       subscription.SynchronizationAgentProcessSecurity.Password = "pwdDuDomaine"
     
    subscription.CreateSyncAgentByDefault = True
    subscription.Create()
    Comment remplacer le code en dur "Domaine\LoginDuDomaine" et "pwdDuDomaine" par les login + pwd de l'utilisateur windows courrant (System.Environment.UserName mais pwd ????)
    ou comment dire d'utiliser une sécurité intégrée windows
    ou comment dire d'utiliser un login+pwd présents dans sql serveur (je dis peut-être une bétise là mais bon...)
    ou (peut-être que je suis encore pire dans ma bétise...) comment dire d'utiliser une connexion "En imitant le compte de processus". Vous aurez compris que je ne sais pas vraiment à quel niveau de connexion je suis là.

    Merci beaucoup pour votre aide.
    C. Laumon

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 79
    Points
    79
    Par défaut
    Finalement, avec un login+pwd défini dans le serveur sql server ça passe. J'avais dû louper quelque chose lorsque j'ai fait le test la première fois.
    Comme cette solution peut me convenir, j'en resterai là.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    subscription.SynchronizationAgentProcessSecurity.Login = "SqlUserName"
    subscription.SynchronizationAgentProcessSecurity.Password = "SqlUserPwd"
    Si à tout hasard quelqu'un sait comment gérer avec la sécurité intégrée ou en imitant le compte de processus, je suis quand même preneur.

    C. Laumon

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 79
    Points
    79
    Par défaut
    Finalement et si ça peut aider, voici comment définir la connexion au serveur en utilisant un utilisateur sql au lieu de l'utilisateur windows.

    Pour créer un abonnement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim connPublisher As ServerConnection = New ServerConnection(sPublisherName, My.Settings.SqlLogin, My.Settings.sqlPwd)
    connPublisher.LoginSecure = False 'connexion avec user sql server
    connPublisher.Connect()
     
    '***
    Dim subscription As MergePullSubscription
    = New MergePullSubscription(sSubscriptionDbName, sPublisherName, sPublicationDbName, sPublicationName, connExpress)
    subscription.SubscriberSecurity.WindowsAuthentication = False
    subscription.SubscriberSecurity.SqlStandardLogin = My.Settings.SqlLogin
    subscription.SubscriberSecurity.SqlStandardPassword = My.Settings.sqlPwd
     
    subscription.DistributorSecurity.WindowsAuthentication = False
    subscription.DistributorSecurity.SqlStandardLogin = My.Settings.SqlLogin
    subscription.DistributorSecurity.SqlStandardPassword = My.Settings.sqlPwd
    Pour synchroniser :
    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
    Dim connExpress As ServerConnection = New ServerConnection(sSubscriberName)
    Dim subscription As MergePullSubscription
    Dim agent As MergeSynchronizationAgent
                connExpress.Connect()
                subscription = New MergePullSubscription(sSubscriptionDbName, sPublisherName, sPublicationDbName, sPublicationName, connExpress)
    If subscription.LoadProperties() Then
        agent = subscription.SynchronizationAgent
        agent.OutputVerboseLevel = 1
        agent.Output = ""
        agent.DistributorSecurityMode = SecurityMode.Standard
        agent.DistributorLogin = My.Settings.SqlLogin
        agent.DistributorPassword = My.Settings.sqlPwd
        agent.PublisherSecurityMode = SecurityMode.Standard
        agent.PublisherLogin = My.Settings.SqlLogin
        agent.PublisherPassword = My.Settings.sqlPwd
        agent.Synchronize()
    Pour supprimer un abonnement c'est le même code que pour la création mais en utilisant subscription.Remove(). Cf. l'aide Microsoft pour plus de précisions.

    C. Laumon.

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

Discussions similaires

  1. HttpSession login pwd et serializable
    Par r1-1024 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 17/09/2009, 00h26
  2. recupere le login de la banniere et le mettre dans une table
    Par boubourse92 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/07/2007, 10h24
  3. Réponses: 2
    Dernier message: 29/05/2007, 11h48
  4. Réponses: 5
    Dernier message: 19/10/2006, 00h07
  5. Réponses: 6
    Dernier message: 27/10/2005, 15h07

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