SQL Server 2008 OPENROWSET权限问题

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

我在 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/

相关文章:

sql - 更新所有表行,但 Mysql 中的前 N

sql - 如何将数据库图从一台服务器移动到另一台服务器

c# - 如何从数据库中获取最接近的日期时间?

sql-server - 比较 Varchar 和 UniqueIdentifier

c# - 如果放入外部程序集,我将无法使用我的自定义授权属性

security - 为什么我无法在浏览器中存储 oauth 刷新 token ?

sql - 如何将值列表设置为 hibernate 查询的参数?

sql - 使用 create table as select 时避免重复列名

SQL Server : get date with inparameters year, 周,工作日

php - 没有设置 HttpOnly 标志的 session Cookie