我正在使用 Visio 2019,尝试对 Azure SQL 服务器进行逆向工程。我已成功创建了多个用户数据源,供在向导中使用,同时使用了我们的 DB-admin 用户和我的管理员 Azure 目录登录名。数据库凭据已成功验证,并且我想要进行逆向工程的表/视图即将加载,这时我得到以下信息:
Visio 反向工程数据库向导引发错误:
“错误!无法提取表/视图的列定义。定义不是
可用或者您可能没有足够的权限。”
带有文本框,内容为:
“在 sys.servers 中找不到服务器“数据库名称”*。请验证是否指定了正确的服务器名称。如有必要,请执行存储过程 sp_addlinkedserver 将服务器添加到 sys.servers。”
我既找不到 sys.servers,也无法运行 sp.addlinkedserver,因为它不存在。但是 sys.sysservers 确实存在。
我给数据库名称加了星号,因为它不显示“DB_2.0”的目标数据库,而是显示“DB_2”这不是数据库的全名。
正如我上面提到的,我相信我有足够的权限,因为我是管理员,并且使用管理员用户名和密码。所以这可能与没有 sys.servers 表有关?
答案1
与 MSFT 支持人员合作,他们让我将数据库从 DB_2.0 重命名为 DB_2。我创建了一个新的连接 DSN,之后它运行正常。显然,visio 不喜欢连接字符串中的“.0”。如果我可以在文本文件中编辑连接字符串,这样我就不必重命名整个数据库了。