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

Откуда:
Сообщений: 403
Такая задача: данные из таблицы одной бд, должны переноситься в таблицу другой бд. Делаться это должно мануально (не автоматически) юзером, у которого нет прав на чтение таблиц (только право на запуск процедуры апдейта). Внутри одной базы для 2- тестовых таблиц все работает без проблем. Когда тестирую таблицы в разных бд, вылазит ошибка из-за TRUSTWORTHY=OFF. Почитал про это свойство и решил, что включать его опасно.

Не подскажите, как обойти эту проблему?

Спасибо!
17 янв 19, 17:17    [21788161]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
senn
Member

Откуда:
Сообщений: 403
да, забыл:
Microsoft SQL Server 2017 (RTM-GDR) (KB4293803) - 14.0.2002.14 (X64) Jul 21 2018 07:47:45 Copyright (C) 2017 Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2016 Datacenter 10.0 <X64> (Build 14393: ) (Hypervisor)
17 янв 19, 17:24    [21788164]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
senn
Не подскажите, как обойти эту проблему?
http://www.sommarskog.se/grantperm.html#crossdb
17 янв 19, 17:37    [21788171]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
Владислав Колосов
Member

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

опасно в очень специфических случаях. Думаю, что Ваш туда не входит.
17 янв 19, 18:59    [21788252]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
Yasha123
Member

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

опасно в очень специфических случаях. Думаю, что Ваш туда не входит.

не такие уж и специфические случаи.
много где раздают db_owner-ов направо и налево.
уж куда меньше проблем будет, если просто базы зачейнить
18 янв 19, 09:56    [21788474]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
Владислав Колосов
Member

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

много где все ходят на сервер под sa :)
18 янв 19, 12:27    [21788649]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
Yasha123
Member

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

много где все ходят на сервер под sa :)

там, где все ходят под sa,
нет проблем с непопаданием в соседнюю базу
18 янв 19, 12:31    [21788657]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
senn
Member

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

да, я вот тоже надеюсь, что это не мой случай, т.к. способы обхода нравятся мне еще меньше.

Круг пользователей и разработчиков очень ограничен. С правами sa вообще только 3 человека. Сервер и базы видны только внутри интранет сети (наружу ничего не идет). Я, к сожалению, не специалист в безопасности, поэтому и хотел перестраховаться.
21 янв 19, 14:33    [21790276]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
senn
Member

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

пробовал зачейнить. Почему-то не сработало.
Схема такая:
1. В базе А есть исходная таблица, в базе В - таблица, которая обновляется (через truncate) содержанием первой. Делается это запуском хп-ки (с WITH EXECUTE AS OWNER) , на которую у юзера-оператора есть права на запуск. Больше у этого юзера никаких прав нет. Сама процедура находится в базе В и запускает запрос типа INSERT INTO База_B.dbo.AAA SELECT ... FROM База_A.dbo.AAA.

Должен ли в этой ситуации работать чейнинг или для этого юзеру нужны права не только на запуск хп, но и на оъекты?

Спасибо!
21 янв 19, 14:51    [21790306]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
senn
да, я вот тоже надеюсь, что это не мой случай
Когда он станет вашим, будет уже поздно.

Если же выбрали вариант с trustworthy. исходя из минимизации собственных телодвижений по реализации задачи, то, хотя бы, не давайте владельцам БД администраторские разрешения.
21 янв 19, 14:55    [21790312]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
Владислав Колосов
Member

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

риски состоят в следующем - если базу можно незаметно detach, заменить хорошие CLR на плохие, сделать attach, то плохие CLR могут наделать бед. То же самое касается эскалации прав пользователя до админа, если пользователь входит в группу владельцев базы или может выполнить "универсальную процедуру всего" от имени dbo, сделав инъекцию кода, а базой владеет сисадмин. Другие риски мне неизвестны, может кто-то еще подскажет.
21 янв 19, 16:23    [21790402]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
felix_ff
Member

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

риски состоят в следующем - если базу можно незаметно detach, заменить хорошие CLR на плохие, сделать attach, то плохие CLR могут наделать бед.


не могут, потому что как раз для этого trustworthy и нужен. у вновь приаттаченой БД он всегда false пока админ не сделает ее снова доверенной

То же самое касается эскалации прав пользователя до админа, если пользователь входит в группу владельцев базы или может выполнить "универсальную процедуру всего" от имени dbo, сделав инъекцию кода, а базой владеет сисадмин. Другие риски мне неизвестны, может кто-то еще подскажет.


в первую очередь риски связаны с олицетворением.

кстати стоит заметить, что бы повысить права до сисадмина не обязательно что бы овнер бд тоже был сисадмином, ему будет достаточно authenticate server
21 янв 19, 21:03    [21790628]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
Владислав Колосов
Member

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

админ-то должен сделать доверенной, чтобы CLR функционал работал. И среди хороших активируется троянская.
22 янв 19, 19:06    [21791482]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос про права и TRUSTWORTHY(?)  [new]
Col
Member

Откуда: Торонто
Сообщений: 177
senn
Почему-то не сработало.

Надеюсь владелец обойх баз/схем одинаков?
Динамический запрос?
https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/enabling-cross-database-access-in-sql-server
Dynamic SQL
Cross-database ownership chaining does not work in cases where dynamically created SQL statements are executed unless the same user exists in both databases. You can work around this in SQL Server by creating a stored procedure that accesses data in another database and signing the procedure with a certificate that exists in both databases. This gives users access to the database resources used by the procedure without granting them database access or permissions.
27 янв 19, 03:52    [21795077]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить