如何解决SQL Server 2016导出数据时提示当前用户不是所选数据库所有者的问题
SQL Server导出报错解决方案
报错中「当前用户」的身份说明
你遇到的报错:
"The current user is not an owner of the selected database."
此处的当前用户指的是你连接目标数据库时使用的Christiano账号,和源端使用的sa账号无关:导出流程中SQL Server会校验操作目标库的登录账号权限,源端sa已经具备源库所有权,权限满足要求,问题出在目标端账号缺少对应权限。
可行解决方案
你可以根据自己的安全管控要求选择以下任意一种方案处理:
- 方案1:修改目标数据库所有者为
Christiano
这是最直接匹配报错要求的解决方案,操作方式有两种:- SSMS图形化操作:右键目标数据库→【属性】→【文件】→点击【所有者】右侧的浏览按钮,选择
Christiano账号后确认保存即可。 - T-SQL命令执行:
USE [你的目标数据库名称] GO EXEC sp_changedbowner 'Christiano' GO - SSMS图形化操作:右键目标数据库→【属性】→【文件】→点击【所有者】右侧的浏览按钮,选择
- 方案2:给
Christiano授予目标库的db_owner角色权限
如果你不想修改目标数据库的默认所有者,可以直接给账号赋予最高操作权限,T-SQL命令如下:USE [你的目标数据库名称] GO ALTER ROLE [db_owner] ADD MEMBER [Christiano] GO - 方案3:临时使用sa账号登录目标端执行导出
如果是单次临时导出操作,不需要修改现有权限配置,可以直接换用sa账号连接目标端执行导出,操作完成后再换回原有账号即可。
注意事项
- 修改数据库所有者、授予db_owner角色都属于高权限操作,请确认账号的使用范围符合你的安全管控规则,避免过度授权带来的安全风险。
- 导出前建议确认源库和目标库的SQL Server兼容级别一致,避免出现额外的对象兼容性报错。
内容的提问来源于stack exchange,提问作者chris Celano
相关产品推荐
相关产品推荐

