SQL Server 2008 OPENROWSET权限问题

4

我正在使用Windows Server 2008 Enterprise 64-bit上的SQL Server 2008 64位企业版。 我发现当我在SQL Server Management Studio中执行以下语句时,需要sysadmin权限。 我使用这个语句将数据从Excel导入到数据库表中。 我的问题是,我担心sysadmin权限太高,有没有使用较低权限实现相同功能的解决方案?

select * from  OPENROWSET('MICROSOFT.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;DATABASE=C:\mytest1.xlsx',sheet1$)
2个回答

4

来自在线书籍OPENROWSET (Transact-SQL)

用户需要拥有ADMINISTER BULK OPERATIONS权限。

这里是授予该权限的入口。它是一个服务器级别的权限,因此确实很高。

如果要尝试较低的权限,可以创建标准的链接服务器连接并添加登录信息。

EXEC sp_addlinkedsrvlogin 'LINKSERVERNAME', 'false',
    'localuser', 'rmtuser', 'rmtpass'

似乎没有需要授予的特定权限,因此如果您设置了一个链接服务器,那么使用通用的 linkedsrvlogin 来映射每个本地用户是不明智的。请设置特定的本地-远程映射来控制本地用户通过链接服务器在远程服务器上的访问权限(通过 rmtuser 登录)。


谢谢,我对链接服务器解决方案很感兴趣。使用链接服务器,最低需要什么权限?你能给我推荐一个指南或教程吗? - George2

1
select * from  OPENROWSET('MICROSOFT.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;DATABASE=C:\mytest1.xlsx',sheet1$)

请尝试使用这个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接