2010-09-06 4 views
0

Je lance un appel à odbc32.dll (SQLBrowseConnect) pour renvoyer une liste de bases de données sur un serveur SQL.Aide odbc32 et SQLBrowseConnect

de courir une trace que je peux voir la requête en cours d'exécution est

select name from master..sysdatabases where has_dbaccess(name)=1 

Si les pouvoirs que je passe ne sont pas l'utilisateur retourne sa juste les bases de données du système. Y at-il de toute façon que je peux utiliser SQLBrowseConnect avec un autre utilisateur (dont la base de données par défaut n'est pas non plus la base de données master) pour retourner toutes les bases de données sur le serveur?

Je veux aussi éviter les objets SMO

Répondre

0

La requête fonctionne sans informations d'identification sysadmin.

Vous devez vous assurer que vous/les informations d'identification que vous utilisez sont au moins dans le public database role sur chacune des bases de données auxquelles vous devez vous connecter.

Comme vous pouvez le deviner, sélectionnez le nom de master..sysdatabases renvoie tous les noms de base de données quel que soit votre accès à la base de données.