我在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$)
答案 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$)
请尝试使用此