2009-06-25 4 views
5

J'ai configuré 2 serveurs pour le moment. L'un est un serveur Web exécutant Win Server 08 et l'autre est un serveur de base de données exécutant SQL Server 08 sur Win Server 08.chaîne de connexion pour le serveur de base de données distant

Actuellement, j'ai configuré mon site afin qu'il puisse lire/écrire dans la base de données en utilisant une chaîne de connexion. J'ai créé avec le nom de la base de données, le serveur ip, l'utilisateur db et db pwd. L'utilisateur db que j'ai créé a un rôle 'public' dans la base de données (pas le propriétaire de la base de données) et peut simplement exécuter des procédures stockées. Mon la chaîne de connexion ressemble actuellement à ceci:

<add name="SiteDBConn" connectionString="Server=IPOfServer;Database=DBname;User ID=userhere;Password=passhere;"/> 

Bien que cela fonctionne parfaitement pour moi, je voudrais installer une chaîne de connexion de base de données qui ne contenait aucun nom d'utilisateur et mot de passe. Sur certains de mes autres serveurs, où le serveur SQL réside sur le même serveur que les fichiers Web, je peux utiliser une connexion sécurisée et utiliser l'utilisateur 'Network Service' intégré à ma base de données. Cela me permet d'exécuter une chaîne de connexion sans nom d'utilisateur et mot de passe comme ceci:

<add name="SiteDBConn" connectionString="Server=localhost;Database=DBname;Trusted_Connection=Yes;"/> 

est-il un moyen facile d'obtenir une connexion à la base de données sans hardcoding un nom d'utilisateur et mot de passe - comme la chaîne de connexion ci-dessus - lors de l'utilisation 2 différents serveurs? Est-ce que je perds mon temps en descendant cette route en voyant comment l'utilisateur de base de données que j'ai créé a seulement des permissions d'exécution de toute façon?

Merci pour vos commentaires à ce sujet.

Répondre

5

Vous ne perdez pas votre temps. C'est une très bonne pratique. Lorsque vous séparer IIS et SQL sur des machines distinctes, voici quelques options:

  • Créer l'utilisateur asp.net à la fois sur la zone IIS et le serveur SQL (de préférence avec même mot de passe)
  • Utiliser l'usurpation d'identité (changement le contexte de votre site fonctionne sous)
  • Crypter une chaîne de connexion dans le registre un fichier de configuration et d'oublier les connexions sécurisées (brrr)
  • de commutation du contexte asp.net être un utilisateur de domaine
  • utilisation IIS6 en mode d'application native
+0

Merci pour vos commentaires. En ce qui concerne l'usurpation d'identité, connaissez-vous de bons guides ou de bonnes procédures pour la mise en place? À votre santé. –

+0

effectivement gratter cette dernière question. Entre votre article et cette question, j'ai l'information dont j'ai besoin. Merci. http://stackoverflow.com/questions/982216/database-connections-work-fine-when-application-is-run-from-localhost-login-fai –

1

Si les 2 serveurs ne se trouvent pas dans le même domaine Windows, vous ne pouvez pas utiliser une connexion sécurisée.

De plus, le login doit être créé en tant qu'authentification Windows, vous ne pouvez pas utiliser une connexion d'authentification SQL avec une connexion sécurisée.

Sinon, tout ce que dit Tapori.

Questions connexes