Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Народ, подскажите что надо сделать, чтобы
declare @strSQL as nvarchar(4000)
--declare @nameFile as nvarchar(100)
set @nameFile='d:\spl_docs$\excel\' + @nameFile
set @strSQL=N'
 SELECT * into ##ttttt FROM 
 OpenrowSet( 
	''Microsoft.Jet.OLEDB.4.0'', 
	''Excel 8.0;
	 CommandTimeout = 180; 
	 Database='+@nameFile+';'',
	''SELECT * FROM [Лист1$] ''
	) '
 EXEC sp_executesql @strSQL

выполнилось с правами обычного юзера, без наделения его какими-нибудь админами

Сообщение было отредактировано: 23 апр 15, 13:31
23 апр 15, 13:27    [17553829]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Gviber
Member

Откуда:
Сообщений: 124
Вставить в ХП и дать пользователю права на выполнение ХП?
23 апр 15, 13:46    [17553952]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Gviber
Вставить в ХП и дать пользователю права на выполнение ХП?

оно и вставлено в ХП, только не выполняется от обычного юзера
23 апр 15, 13:53    [17553985]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
sposad
только не выполняется от обычного юзера

Это вы текст серверного сообщения цитируете ?
23 апр 15, 13:54    [17554000]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Нет никаких причин для предоставления админских прав этому коду.
23 апр 15, 13:55    [17554007]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Gviber
Member

Откуда:
Сообщений: 124
Можно еще создать связанный сервер и дать права пользователю на него:

declare @LinkSName varchar(max);
declare @Path varchar(max);

set @LinkSName = 'SND' -- название
set @Path = '\\mssql\linkserver\SND.xls'; --путь к Excel файлу

if exists (select srvname from master.dbo.sysservers where srvname=@LinkSName) 
exec sp_dropserver @server=@LinkSName, @droplogins='droplogins' 

--Подключаем 
EXEC sp_addlinkedserver 
@server = @LinkSName, 
@srvproduct=N'MicrosoftJet.OLEDB.4.0', 
@provider=N'Microsoft.Jet.OLEDB.4.0', 
@datasrc=@Path,
@provstr=N'Excel 8.0'

--Даем права
EXEC sp_addlinkedsrvlogin @LinkSName, 'false', 'UserName', 'admin', ''
23 апр 15, 13:58    [17554022]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Glory
sposad
только не выполняется от обычного юзера

Это вы текст серверного сообщения цитируете ?


Сообщение такое
Msg 7415, Level 16, State 1, Line 2
Ad hoc access to OLE DB provider 'Microsoft.Jet.OLEDB.4.0' has been denied. You must access this provider through a linked server.

Это когда от пользователя, с моими правами всё работает.
23 апр 15, 14:02    [17554052]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
sposad
Сообщение такое

А вы его читали ?
Вы там увидели что-то про права администратора ?
23 апр 15, 14:03    [17554058]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
sposad,

возможно, нет прав на папку у пользователя.
23 апр 15, 14:04    [17554065]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Glory
sposad
Сообщение такое

А вы его читали ?
Вы там увидели что-то про права администратора ?

Этого я не увидел, но кусок работает в таком виде как есть только с моими правами
23 апр 15, 14:07    [17554084]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Владислав Колосов
sposad,

возможно, нет прав на папку у пользователя.
Эта папка - невидимая шара для записи и чтения всех
23 апр 15, 14:08    [17554092]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
sposad
Этого я не увидел

А лезть в хелп за выяснением, что такое Ad hoc access, поленился.
23 апр 15, 14:09    [17554095]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Gviber
Можно еще создать связанный сервер и дать права пользователю на него:

declare @LinkSName varchar(max);
declare @Path varchar(max);

set @LinkSName = 'SND' -- название
set @Path = '\\mssql\linkserver\SND.xls'; --путь к Excel файлу

if exists (select srvname from master.dbo.sysservers where srvname=@LinkSName) 
exec sp_dropserver @server=@LinkSName, @droplogins='droplogins' 

--Подключаем 
EXEC sp_addlinkedserver 
@server = @LinkSName, 
@srvproduct=N'MicrosoftJet.OLEDB.4.0', 
@provider=N'Microsoft.Jet.OLEDB.4.0', 
@datasrc=@Path,
@provstr=N'Excel 8.0'

--Даем права
EXEC sp_addlinkedsrvlogin @LinkSName, 'false', 'UserName', 'admin', ''

Пытался делать... Хотя, может с контекстом напутал... попробую ещё, спасибо
23 апр 15, 14:13    [17554119]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Glory
sposad
Этого я не увидел

А лезть в хелп за выяснением, что такое Ad hoc access, поленился.

Честно говоря, поленился, показалось мало информативно для поиска по хелпу
23 апр 15, 14:16    [17554129]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
sposad
Glory
пропущено...

А лезть в хелп за выяснением, что такое Ad hoc access, поленился.

Честно говоря, поленился, показалось мало информативно для поиска по хелпу

Ага. Зато очень информативной для вашей постановки диагноза - прав мол не хватает
23 апр 15, 14:17    [17554137]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Glory
sposad
пропущено...

Честно говоря, поленился, показалось мало информативно для поиска по хелпу

Ага. Зато очень информативной для вашей постановки диагноза - прав мол не хватает

Ну когда с правами выполняется, а без них - нет, то обычно вывод сам напрашивается:) Хотя в некотором роде прав действительно не хватает, по политике в настройки сервера я не могу лезть, напишу админу, спасибо.
23 апр 15, 14:24    [17554176]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
sposad
Ну когда с правами выполняется, а без них - нет, то обычно вывод сам напрашивается:)

А еще некоторые объясняеют все багами Майкрософт
23 апр 15, 14:27    [17554198]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
sposad
Member

Откуда:
Сообщений: 62187
Glory
sposad
Ну когда с правами выполняется, а без них - нет, то обычно вывод сам напрашивается:)

А еще некоторые объясняеют все багами Майкрософт
:)Ну а что? Я вот, ковыряясь в билдере TFS, на баг наехал, и китаец из поддержки сказал, что, мол да, неувязочка:)
23 апр 15, 14:32    [17554243]     Ответить | Цитировать Сообщить модератору
 Re: Выполнить от юзера:)  [new]
Glory
Member

Откуда:
Сообщений: 104751
sposad
:)Ну а что? Я вот, ковыряясь в билдере TFS, на баг наехал, и китаец из поддержки сказал, что, мол да, неувязочка:)

Что же вы тут не написали, что из-за бага МS у вас код работает по разному ?
Просто удивляют люди, которые "поленились" что-то выяснить, но выводы уже сделали
23 апр 15, 14:37    [17554272]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить