Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : janvier 2004
    Messages : 91
    Points : 47
    Points
    47

    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 :
    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 du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : janvier 2004
    Messages : 91
    Points : 47
    Points
    47

    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 :
    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 du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2004
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : janvier 2004
    Messages : 91
    Points : 47
    Points
    47

    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 :
    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 :
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •