我在 Windows Server 2008 Enterprise 64 位上使用 SQL Server 2008 64 位 Enterprise。我发现当我在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$)
最佳答案
来自在线书籍 OPENROWSET (Transact-SQL)
用户需要ADMINISTER BULK OPERATIONS
权限。
和here is the entry授予它。这是服务器级别的权限,所以是的,它相当高。
要尝试较低的权限,您可以创建标准链接服务器连接并使用添加登录
EXEC sp_addlinkedsrvlogin 'LINKSERVERNAME', 'false',
'localuser', 'rmtuser', 'rmtpass'
似乎没有需要授予的任何特定权限,因此,如果您设置链接服务器,则使用映射到每个本地用户的通用 linkedsrvlogin
来设置它是不明智的。设置特定的本地-远程映射,通过链接服务器在远程服务器上控制本地用户的访问(通过 rmtuser
登录)。
关于SQL Server 2008 OPENROWSET权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4777906/