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

Откуда: Новосибирск
Сообщений: 2382
Блог
Добрый день, коллеги.

Столкнулся с ситуацией. После переноса бд (путем бекап-ресторе) как то странно (спорадически) перестают работать гранты на процедуры. Схема такая: пользователь включен в группу, группе выданы права на выполнение хранимки. На исходной базе всё прекрасно работает, на восстановленной сервер вдруг начинает требовать права на выборку из таблиц. Пока не выдашь гранты на все таблицы - не успокаивается. Динамических запросов с этими таблицами нет. Буду благодарен за любую подсказку куда смотреть.
3 май 18, 14:37    [21384555]     Ответить | Цитировать Сообщить модератору
 Re: Сервер требует грант на выборку, хотя есть грант на выполнение  [new]
aleks222
Member

Откуда:
Сообщений: 850
Павел Воронцов
Динамических запросов с этими таблицами нет.

Так и не надо.
Достаточно другой схемы, другого владельца схемы или другой базы без включенного ownership.
3 май 18, 14:41    [21384569]     Ответить | Цитировать Сообщить модератору
 Re: Сервер требует грант на выборку, хотя есть грант на выполнение  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2382
Блог
aleks222
Павел Воронцов
Динамических запросов с этими таблицами нет.

Так и не надо.
Достаточно другой схемы, другого владельца схемы или другой базы без включенного ownership.

Спасибо. База та же, всё в схеме dbo. Включил пользователя в db_owner, заработало. Но мне это не нравится, буду копать дальше.
3 май 18, 14:48    [21384602]     Ответить | Цитировать Сообщить модератору
 Re: Сервер требует грант на выборку, хотя есть грант на выполнение  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Павел Воронцов
aleks222
пропущено...

Так и не надо.
Достаточно другой схемы, другого владельца схемы или другой базы без включенного ownership.

Спасибо. База та же, всё в схеме dbo. Включил пользователя в db_owner, заработало. Но мне это не нравится, буду копать дальше.

1. для чтения db_owner не нужен, достаточно db_datareader.
2. нахождение процедуры в схеме dbo не есть гарантия того, что владелец ппоцедуры тоже dbo. его запросто можно переназначить через alter authorization
3. при ресторе владельцы таблиц /процедур не меняются. может смениться владелец базы(на того, кто восстанавливал), плюс слетают db chaining и trustworthy
4 май 18, 11:26    [21386770]     Ответить | Цитировать Сообщить модератору
 Re: Сервер требует грант на выборку, хотя есть грант на выполнение  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
Павел Воронцов,

дык при ресторе надо восстанавливать владельца базы на оригинального. У вас там что-то завязано с правами на владельца базы.
4 май 18, 11:51    [21386882]     Ответить | Цитировать Сообщить модератору
 Re: Сервер требует грант на выборку, хотя есть грант на выполнение  [new]
invm
Member

Откуда: Москва
Сообщений: 9122
Павел Воронцов,

Сравните результаты такого запроса на исходной и новой БД:
select
 s.name, o.name, coalesce(suser_sname(oo.sid), suser_sname(so.sid))
from
 sys.objects o join
 sys.schemas s on s.schema_id = o.schema_id join
 sys.database_principals so on so.principal_id = s.principal_id left join
 sys.database_principals oo on oo.principal_id = o.principal_id
where
 o.object_id in (object_id(N'Процедура'), object_id(N'Какая-либо таблица из процедуры, на которую требуются разрешения'));
4 май 18, 11:57    [21386910]     Ответить | Цитировать Сообщить модератору
 Re: Сервер требует грант на выборку, хотя есть грант на выполнение  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2382
Блог
invm,

Спасибо, одинаковые результаты

Владислав Колосов,

Да, скорей всего дело в этом. Копаю туда.
4 май 18, 12:59    [21387148]     Ответить | Цитировать Сообщить модератору
 Re: Сервер требует грант на выборку, хотя есть грант на выполнение  [new]
Дед-Папыхтет
Member [заблокирован]

Откуда:
Сообщений: 2808
Павел Воронцов,

alter user ...

sid после переноса БД, на другой сервер пользователя и логина разный.
4 май 18, 13:08    [21387184]     Ответить | Цитировать Сообщить модератору
 Re: Сервер требует грант на выборку, хотя есть грант на выполнение  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
Дед-Папыхтет
Павел Воронцов,

alter user ...

sid после переноса БД, на другой сервер пользователя и логина разный.

если бы сид был не тот, там не то что "гранты на чтение требует" , юзер вообще в базу не попал бы
4 май 18, 21:52    [21388697]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить