Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 Почему SSIS требует разрешение на SELECT для Destination?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 596
доброе утро!

есть такая "проблема".
имеется SQL Server 2016 SP2, Development Edition для разработки хранилища.
по требованиям безопасности, на некоторых таблицах стоит запрет на выборку из некоторых столбцов некоторых таблиц для всех пользователей, включая разработчиков (DENY SELECT). но у них есть права на INSERT и UPDATE.
Так вот, проблема в том, что при работе с такими таблицами в качестве Destination (OLEDB, ADO.NET), SSIS жалуется на отсутсвие прав на SELECT. но зачем тут права на SELECT, если данные просто вставляются? Можно ли как нибудь обойти это "ограничение" SSIS?
21 авг 18, 04:16    [21648798]     Ответить | Цитировать Сообщить модератору
 Re: Почему SSIS требует разрешение на SELECT для Destination?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 596
при этом, как разработчик, я могу видеть DDL таблицы в SSMS без проблем.
21 авг 18, 04:26    [21648799]     Ответить | Цитировать Сообщить модератору
 Re: Почему SSIS требует разрешение на SELECT для Destination?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 596
кому интересно - есть такой компонент в SSIS, называется SQL Server Destination.
он использует OLE DB тип подключения, делает BULK INSERT, при этом может считывать DDL таблицы с ограничением доступа по столбцам и позволяет настроить mapping. я не работал с ним прежде, так что поэкспериментирую, есть ли какие подводные камни.
21 авг 18, 09:43    [21648953]     Ответить | Цитировать Сообщить модератору
 Re: Почему SSIS требует разрешение на SELECT для Destination?  [new]
Ferdipux
Member

Откуда: Москва
Сообщений: 458
Диклевич Александр
...
Так вот, проблема в том, что при работе с такими таблицами в качестве Destination (OLEDB, ADO.NET), SSIS жалуется на отсутсвие прав на SELECT. но зачем тут права на SELECT, если данные просто вставляются? Можно ли как нибудь обойти это "ограничение" SSIS?

Подозреваю, что SELECT используется для чтения метаданных таблицы назначения. То есть делается примерно так:
SET FMTONLY ON
SELECT * FROM ...
SET FMTONLY OFF

И дальше - BULK INSERT
21 авг 18, 10:34    [21649039]     Ответить | Цитировать Сообщить модератору
 Re: Почему SSIS требует разрешение на SELECT для Destination?  [new]
Диклевич Александр
Member

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

Да, скорее так и есть.
В любом случае, SQL Server Destination позволяет это обойти, хоть там и имеются свои особенности, а именно:
1. можно BULK INSERT только в локальный инстанс, но у нас и так все Destination в пакетах указывают на localhost.
2. работает только с Windows Authentication.
3. требует разрешения Create global objects для пользователя (настраивается в свойствах локальной политики безопасности).
21 авг 18, 13:34    [21649440]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить