【发布时间】:2016-03-10 17:16:41
【问题描述】:
计划
让 HR 人员将工资单职位名称的 Excel 文件转储到网络共享中,将该文件添加为 SSMS 中的链接服务器,在我的 ASP.Net Web 表单中使用这些标题。使用链接服务器而不是导入数据,以允许 HR 自行决定更新职称文件。
问题
只要我在带有 Windows 身份验证的 SSMS 中,我就可以创建链接服务器并毫无问题地查询它。但是,如果我尝试使用 SQL 帐户访问链接服务器,我首先会收到错误:
访问远程服务器被拒绝,因为不存在登录映射(错误 7416)
正在使用的 SQL 帐户与我的 Web 表单用于其他所有操作的帐户相同。这个 SQL 帐户没有文件权限这一事实并不奇怪,因此调整链接服务器的安全性应该可以解决问题。
问题(第 2 部分)
为了减少变量的数量,我移动了 Excel 文件,使其与我的 SQL Server 位于同一台计算机上。我已登录机器并使用我的域管理员帐户登录 SSMS。
我访问了链接服务器的安全选项卡,为了尽可能扩大网络,我将本地登录(顶部)留空并直接前往“使用此安全上下文:”并继续提供我的域管理员凭据。我点击 OK,我得到以下信息:
不是有效的帐户名或密码(错误 7399)
我知道账号名和密码都不错,那给什么?
其他事情
已指示遇到类似情况的人更改用于 SQL Server 服务的登录帐户,我已使用我的域管理员帐户(用于故障排除,atm)完成此操作。这并没有解决问题。
这就是链接服务器代码的样子,尽管我是通过 GUI 创建的(为了完整性而包含在内):
EXEC master.dbo.sp_addlinkedserver @server = N'ADP_TITLES', @srvproduct=N'', @provider=N'Microsoft.ACE.OLEDB.12.0', @datasrc=N'C:\JOB_TITLE_EXPORT.xlsx', @provstr=N'Excel 12.0 Xml'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ADP_TITLES',@useself=N'False',@locallogin=NULL,@rmtuser=N'DOMAIN\username',@rmtpassword='########'
【问题讨论】:
标签: sql excel ssms linked-server