2011-01-24 130 views
4

我在Windows Server 2008 Enterprise 64位上使用SQL Server 2008 64位企业版。我发现当我在SQL Server Management Studio中执行以下语句时,我需要sysadmin权限。我正在使用该语句将数据从Excel导入到数据库表中。我的问题是,我担心系统管理员权限太高,任何解决方案使用较低特权的权限来实现相同的功能?SQL Server 2008 OPENROWSET权限问题

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

回答

4

从书本在线OPENROWSET (Transact-SQL)

用户需要ADMINISTER BULK OPERATIONS许可。

here is the entry赞赏它。这是一个服务器级别的许可,所以是的,它非常高。

要尽量低的权限,你可以创建一个标准的链接服务器连接,并添加使用

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

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

+0

感谢尝试,我感兴趣的链接的服务器解决方案。使用链接服务器,需要的最低权限是多少?你能否介绍一下我的导游或者家庭教师? – George2 2011-01-24 02:06:10

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

请与这一个