SQL Server 2008 OPENROWSET проблема разрешения - PullRequest
4 голосов
/ 24 января 2011

Я использую 64-разрядную версию SQL Server 2008 в 64-разрядной версии Windows Server 2008 Enterprise.Я нахожу, когда я выполняю следующую инструкцию в SQL Server Management Studio, мне нужно разрешение sysadmin.Я использую заявление для импорта данных из Excel в таблицу базы данных.У меня вопрос, я обеспокоен тем, что разрешение системного администратора слишком велико, какие-либо решения использовать более низкое привилегированное разрешение для реализации той же функции?

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

Ответы [ 2 ]

4 голосов
/ 24 января 2011

Из книг в Интернете OPENROWSET (Transact-SQL)

Пользователю требуется разрешение ADMINISTER BULK OPERATIONS.

И здесь есть запись для предоставления его.Это разрешение на уровне сервера, так что да, оно довольно высокое.

Чтобы попробовать более низкие разрешения, вы можете создать стандартное соединение с сервером и добавить логин, используя

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

ТамПо-видимому, никаких особых разрешений, которые необходимо предоставить, не требуется, поэтому, если вы настраиваете связанный сервер, неразумно устанавливать его с общим linkedsrvlogin, который сопоставляется каждому локальному пользователю.Настройте определенные локально-удаленные сопоставления для управления доступом локального пользователя через связанный сервер к удаленному серверу (с помощью логина rmtuser).

1 голос
/ 04 января 2012
select * from  OPENROWSET('MICROSOFT.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;DATABASE=C:\mytest1.xlsx',sheet1$)

Пожалуйста, попробуйте с этим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...