SQL Server 2008 OPENROWSET权限问题

时间:2011-01-24 01:52:04

标签: sql sql-server security sql-server-2008

我在Windows Server 2008 Enterprise 64位上使用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 个答案:

答案 0 :(得分:4)

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

用户需要ADMINISTER BULK OPERATIONS权限。

并且here is the entry用于授予它。它是服务器级权限,所以是的,它非常高。

要尝试降低权限,您可以创建标准链接服务器连接并使用

添加登录
EXEC sp_addlinkedsrvlogin 'LINKSERVERNAME', 'false',
    'localuser', 'rmtuser', 'rmtpass'

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

答案 1 :(得分:1)

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

请尝试使用此