2009-11-17 16 views
1

J'ai besoin de configurer une instance "jetable" de SQL Server 2008 pour que les étudiants puissent tester un programme pendant quelques semaines. SQL Server 2008 s'exécute sur une instance virtuelle de Windows Server 2008. Le serveur est pas un membre du domaine. Les ordinateurs clients qui doivent se connecter au serveur SQL Server sont membres du domaine, tout comme les comptes d'étudiants. Le programme client s'attend à se connecter avec l'authentification Windows. Tout cela serait très simple si le serveur était dans le domaine; Malgré de longues discussions avec l'informatique de l'école, cela ne va pas se produire ...Autoriser l'accès anonyme à SQL Server 2008

Donc: J'ai besoin de configurer le serveur SQL pour accepter les connexions de ces clients. Je ne suis pas sys-admin, donc ma meilleure estimation (basée sur this article) était:

  1. Activer le compte Invité sur Windows

  2. Ajouter "NT AUTHORITY \ ANONYMOUS LOGON" aux connexions acceptées par SQL Server

  3. Set "Accès réseau: Autoriser anonymouse SID/traduction de noms" dans la politique de sécurité locale

  4. Ajouter l'entrée de registre HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ Turn OffAnonymousBlock et le définir à 1

Selon mon estimation, cela aurait dû l'être, mais les clients ne peuvent toujours pas se connecter. Quelqu'un peut-il me donner une recette pour que cela fonctionne? Dire essentiellement à SQL Server d'accepter les connexions de n'importe qui et de tout le monde?

p.s. Aucun souci de sécurité: tout est derrière le pare-feu de l'école, et je vais réinitialiser l'instance lorsque nous aurons terminé.

+0

Est-il possible que le client n'utilise PAS l'authentification Windows? L'authentification DB est beaucoup plus simple. – brianegge

+0

S'il n'y a vraiment pas d'autre moyen, je peux avoir accès au code source, traquer les chaînes de connexion et les modifier pour utiliser l'authentification SQL. MySQL n'est pas une option, car il s'agit d'une application VB qui utilise largement les bibliothèques Microsoft (SQLDMO, etc.). –

Répondre

0

Pour deux machines de se connecter en utilisant l'authentification Windows, l'une des deux choses doivent être remplies:

  1. Les machines sont dans le même domaine ou
  2. Les machines sont dans le même groupe de travail et la Le compte Windows a le même mot de passe sur les deux machines

Si aucun n'est vrai, alors la seule alternative est l'authentification SQL (nom d'utilisateur et mot de passe spécifiques à SQL Server).

+0

Accès anonyme ou invité n'est pas possible? –

+1

Je ne suis pas sûr à 100%, mais je ne le pense pas. Sous les couvertures, Windows Auth n'utilise pas de chaînes pour authentifier les utilisateurs; il utilise des SID. AFAIK, SID pour les comptes intégrés sont différents d'un groupe de travail ou d'un domaine à l'autre, donc les machines indépendantes ne peuvent pas déterminer quel nom de compte est vraiment le nom "anonyme". Certains des problèmes sont expliqués dans l'article MS KB suivant, mais d'après ce que vous avez dit dans votre question, je suppose que vous avez déjà vu cela (en plus, cela s'applique uniquement à SQL 2005 et Windows Server 2003): http: // support.microsoft.com/kb/839569 – RickNZ

+0

Puisqu'il s'agit d'une instance "throw away", avez-vous envisagé d'exécuter SQL 2008 sur une machine virtuelle? De cette façon, la VM pourrait être dans le même groupe de travail que vos étudiants. De plus, il est très facile de réinitialiser les choses par la suite. – RickNZ