Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
Добрый день, коллеги. Подскажите плиз, кто знает... Пытаюсь сделать, чтобы из хранимой процедуры можно было работать с прилинкованным сервером НЕ под правами администратора. В идеале ещё чтобы напрямую к таблицам линкованного сервера обратиться было нельзя (также, как и с обычными таблицами), а только через хранимку. Давно копаюсь, на данном этапе дилемма такая... если ставлю учётке права сисадмина и убираю с прилинкованного сервера олицетворение для учётки, то таблицы сервера все видны, можно читать, удалять... чего хочешь... но это не нужно А если убираю права сисадмина, то получается следующее: Код: sql 1. ответ сервера : Доступ к удаленному серверу запрещен из-за отсутствия сопоставления с именем входа. добавляю олицетворение для учётки, после чего: Код: sql 1. ответ сервера : ---------------------------------------- Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "inform" вернул сообщение "Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.". Сообщение 7399, уровень 16, состояние 1, строка 1 Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "inform" сообщил об ошибке. Ошибка проверки подлинности. Сообщение 7303, уровень 16, состояние 1, строка 1 Не удалось проинициализировать объект источника данных поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "inform". ---------------------------------------- Не на прилинкованном сервере для этой гостевой учётной записи хранимые процедуры видны и запускаются. Таблицы не видны, но работать с ними можно из хранимой процедуры. Собственно вопрос: можно ли сделать так, чтобы таблицы прилинкованного сервера с гостевой учётки если даже и были бы видны, то нельзя было их прочитать, но чтобы можно было с ними работать из хранимых процедур на основном сервере. Прилинкованный сервер - это акцессовский файл mdb. И как побороть эту авторизацию, которая не даёт прочитать таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 15:42 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
Почитайте про EXECUTE AS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 16:34 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
DeffПочитайте про EXECUTE AS спасибо... копаю в этом направлении... а есть пример как выполнить запрос в гостевой сессии от имени пользователя с бОльшими правами? И ещё... даже если я это и смогу, то кроме 'sa' никто больше не видит таблиц прилинкованного сервера. Другому пользователю я не знаю, как это разрешить... (ну кроме как дать сисадминские права...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 18:16 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
melihron, По ссылке все есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 18:37 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
melihronDeffПочитайте про EXECUTE AS спасибо... копаю в этом направлении... а есть пример как выполнить запрос в гостевой сессии от имени пользователя с бОльшими правами? И ещё... даже если я это и смогу, то кроме 'sa' никто больше не видит таблиц прилинкованного сервера. Другому пользователю я не знаю, как это разрешить... (ну кроме как дать сисадминские права...)Есть еще один EXECUTE AS - переключения контекста. Но вы сказали что с помощью процедуры. Просто создать процедуру от пользователя с большИми правами, и пользоваться ей. Т.е. процедуру может выполнить тот, кому дали права на ее запуск. А у самой процедуры будет sa доступ. А если в процедуре динамик sql, то пользоваться второй подсказкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 18:46 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
Если в процедуре пишу запускать от 'sa', то выдаёт следующее : Код: sql 1. 2. 3. 4. 5. Сообщение 15151, уровень 16, состояние 1, процедура get_dealer_property, строка 70 Невозможно выполнить как пользователь "sa", так как он не существует или отсутствуют разрешения. Пользователю slon дал админские права, написал в процедуре, чтобы работала от него : Код: sql 1. 2. 3. 4. 5. Код: sql 1. Сообщение 15274, уровень 16, состояние 1, процедура get_dealer_property, строка 38 Доступ к удаленному серверу запрещен, поскольку текущий контекст безопасности не является доверенным. в первом случае slon не видит sa похоже... а во втором видимо надо ещё что-то прописывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 19:11 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
Создать процедуру из под sa, и написать as owner. Вроде так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 19:43 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. Код: sql 1. Сообщение 15517, уровень 16, состояние 1, процедура get_dealer_property, строка 0 Невозможно выполнить в качестве участника базы данных, поскольку участник "dbo" не существует, этот тип участника не может проходить олицетворение, или отсутствует разрешение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 19:47 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
melihronПоставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "inform" А удаленный сервер не на excel файл ссылается? Если да - а существует ли файл? И не открыт ли он кем-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 19:58 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
melihron Код: sql 1. 2. 3. 4. 5. Код: sql 1. Сообщение 15517, уровень 16, состояние 1, процедура get_dealer_property, строка 0 Невозможно выполнить в качестве участника базы данных, поскольку участник "dbo" не существует, этот тип участника не может проходить олицетворение, или отсутствует разрешение. Другая ошибка совсем. У аксеса нет дбо наверное. Тут может проблема в другом. Я думаю вместо точек надо правильно указать путь к таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2019, 20:08 |
|
||
|
Хранимая процедура не видит прилинкованный сервер
|
|||
|---|---|---|---|
|
#18+
настроил кажись... вся проблема у меня была в том, что не был установлен владелец базы, етить его... как пишут в других форумах - это может происходить из-за того, что БД была восстановлена из бакапа. Deff был на правильном пути... Всем спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2019, 13:34 |
|
||
|
|

start [/forum/topic.php?fid=46&tid=1687996]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
134ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 427ms |

| 0 / 0 |
