从数据仓库导入对象到数据库项目时遇错误,求解决方法
问题原因与解决方案
核心错误拆解
- 权限问题:当前用户没有
master数据库sys.sql_logins视图的SELECT权限,且不是loginmanager角色成员。工具会跳过登录信息的导入,但这本身不会导致完全无法导入对象,只是模型可能缺少登录相关内容。 - 外部数据源不兼容:逆向工程工具不支持类型为
6的外部数据源(这类通常是Azure Synapse中新引入的特定外部数据源类型),这个错误会直接中断导入流程,导致所有对象都无法被导入。
对应解决步骤
1. 处理权限问题(可选,若不需要同步登录信息可跳过)
如果必须同步登录相关内容,无需授予loginmanager角色,执行以下授权语句即可:
USE master; GRANT SELECT ON sys.sql_logins TO [你的登录用户名];
如果无法获取该权限,在逆向工程的配置步骤中,找到排除登录信息的选项手动勾选跳过,避免工具反复抛出权限错误。
2. 解决外部数据源不支持问题
这是导致完全无法导入的关键:
- 临时方案:先从目标数据仓库中移除类型为
6的外部数据源,完成逆向工程导入后,再手动在数据库项目中添加该外部数据源的定义脚本。 - 永久方案:升级你的数据库项目工具(如SQL Server Data Tools/SSDT)到最新版本,新版本通常会支持更多类型的外部数据源。
- 替代方案:使用SSMS中的
Generate Scripts向导导出数据仓库对象,导出时排除外部数据源,再将脚本导入到数据库项目中。
内容的提问来源于stack exchange,提问作者SOUser
相关产品推荐
相关产品推荐

