生成发布脚本时出错:对象 __refactorlog 的选择权限被拒绝?

SAS*_*SAS 2 sql-server sql-server-data-tools

在我的 SSDT 项目中,为什么会出现此错误?

“对象 __refactorlog 的选择权限被拒绝?”

项目中有一个重构日志项。

我选择从 VS 内部生成发布脚本。

编辑:目标是生产服务器,所以我没有在那里创建表或选择数据的权限,我只需要创建部署脚本,无论如何都没有表 __refactorlog ..

Kev*_*ane 5

您需要比当前在该服务器上拥有的权限更高的权限才能生成发布脚本。我验证了在检查表是否存在的代码处理重构操作中存在调用“SELECT OBJECT_ID(N'dbo.__RefactorLog')”。很可能代码在那时失败了,因为您甚至没有权限要求选择对象。您可以通过对数据库运行该查询并查看是否出现错误来自行检查。

确定所需权限的建议:

  • 尝试右键单击数据库并选择“创建新项目”。如果您无法将数据库定义提取到项目中,则表明您没有数据库的查看定义权限
  • 如果不是这种情况,那么问题是您需要对 __refactorlog 表的读取权限,而没有它。解决方案是访问该表,否则您必须验证不需要任何重构并从项目中删除重构日志(不推荐,因为通常您希望保留重构以避免可能的数据丢失和其他问题)。