代码之家  ›  专栏  ›  技术社区  ›  user48408

ODBC32和SQLBrowSeConnect帮助

  •  0
  • user48408  · 技术社区  · 14 年前

    我正在调用odbc32.dll(sqlbrowseconnect)以返回SQL服务器上的数据库列表。

    通过运行跟踪,我可以看到正在执行的查询是

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

    如果我传递的凭证不是SA用户,它只返回系统数据库。是否仍然可以使用sqlbrowseconnect与另一个用户(其默认数据库也不保证是master数据库)返回服务器上的所有数据库?

    我还想避免SMO对象

    1 回复  |  直到 14 年前
        1
  •  0
  •   StuartLC    14 年前

    查询在没有sysadmin凭据的情况下工作。

    您需要确保您/您使用的凭据至少在 public database role 在需要连接到的每个数据库上。

    正如您所猜测的,select name from master..sysdatabases返回所有数据库名称,而不考虑您对数据库的访问。