2009-02-02 8 views
5

J'essaie d'utiliser l'utilitaire aspnet___regsql pour installer toutes les tables d'appartenance dans une base de données sur mon instance SQL Express 2008 locale. Je peux me connecter sans problème dans Management Studio, mais lorsque je tente de lister les bases de données dans l'interface aspnet_regsql je reçois un message d'erreur indiquant:Message d'erreur inattendu de aspnet_regsql

Failed to query a list of database names from the SQL Server. 
Invalid object name 'sysdatabases'

Qu'est-ce que je fais mal? Comment puis-je réparer ça?

(S'il vous plaît me dire qu'il ya une plus lisse façon que réinstallant la chose ...: P)

Répondre

9

J'ai résolu le problème en contournant l'interface graphique et d'effectuer la même action directement dans l'invite de commande, avec des drapeaux spécifiant toutes les options. Ils devraient ressembler à ceci:

Se connecter en utilisant l'authentification SQL

C:\>Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -S myHostingServer -A all -d myDatabase -U myUserID -P myPassword

Se connecter en utilisant l'authentification Windows

C:\>Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -S myHostingServer -A all -d myDatabase -E

La différence est à la fin des lignes, où SQL Auth. a -U myUsername -P myPassword tandis que Windows Auth. a -E (qui marque pour Trusted Connection).

0

Par défaut sur Vista, l'utilisateur actuel sur la machine n'est pas membre de SysAdmin sur SQL Server 2005/2008.

Voici donc l'astuce.

1-Ouvrir l'outil de configuration de surface de serveur Sql à partir de C: \ Program Files \ Microsoft SQL Server 2005/2008.

2-Lorsque l'écran apparaît, cliquez sur Ajouter un nouvel administrateur.

-on top right make sure that User to provision=Username of the pc 
    -on your left (Available Privileges) select Member of SQL Server SysAdmin and click on the right arrow (>) 
    -click ok and you should be ready to go. 

Mon nom est Talley Ouro, développeur à Raleigh, Caroline du Nord Blog: http://talleyblogs.blogspot.com/ Email: [email protected]

0

Ce problème est généralement causé en laissant "serveur" pour être votre nom de la machine à la place du nom de votre instance de serveur SQL. Il est difficile à comprendre car ils remplissent automatiquement la zone de texte pour le nom de votre machine, ce qui est nécessaire mais incomplet. Cela peut vous amener à penser que "Serveur" fait référence à l'ordinateur lui-même quand il s'agit d'une instance de serveur SQL. Si vous vous connectez à votre machine locale, vous pouvez généralement ajouter à leur entrée avec le nom de votre instance SQL et tout fonctionnera comme prévu

IE LOCALHOST doit devenir LOCALHOST \ SQLEXPRESS ou tout ce que vous nommez votre boîte \ SQLServer

2

Si vous souhaitez utiliser l'interface graphique, vous devez vous assurer que l'utilisateur auquel vous êtes connecté a la valeur par défaut définie dans SQL 'master' afin qu'il puisse se connecter directement à la table sysdatabases.

1

assurer que, dans SQL Server Configuration Manager -> Configuration du réseau SQL Server -> Protocoles pour YOUR_SQL_SERVER_INSTANCE_NAME est activé TCP/IP. NB Pour appliquer ce changement, vous devez redémarrer YOUR_SQL_SERVER_INSTANCE_NAME

Questions connexes