Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
sti Member Откуда: Сообщений: 769 |
select @@VERSION Microsoft SQL Server 2014 - 12.0.2269.0 (X64) Jun 10 2015 03:35:45 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) Один Windos user не имеет прав в одной из баз на SELECT. execute as user = 'Win\WinUser'; SELECT HAS_PERMS_BY_NAME(db_name(), 'DATABASE', 'SELECT'); revert Получаем 0. Выполняю grant SELECT to [Win\WinUser] ошибок не возвращается, прав на SELECT не появляется. Удаляю юзера, удаляю логин. Создаю снова и проблема повторяется. Манипуляции в SSMS - включаю юзера в роль datareader, выключаю его оттуда, ничего не меняют. Проблема существует только в этой базе. Для других всё работает. Предыстория мне не известна. Знаю только, что на SQL 2014 мигрировали с предыдущих версий. С каких именно и как, неизвестно. |
29 сен 16, 13:14 [19723366] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
узнать, с какой версии мигрировала база, можно так: dbcc dbinfo with tableresults -- see dbi_createVersion а юзер -- виндовый, наверняка входит в группу с денаем на селект. в виндовую группу. ищите в sys.user_token: select * from sys.user_token where principal_id > 0 |
29 сен 16, 13:38 [19723514] Ответить | Цитировать Сообщить модератору |
sti Member Откуда: Сообщений: 769 |
o-o, Спасибо, разобрался. Действительно юзер входит в группу VORDEFINIERT\Administratoren (у нас тут всё по немецки), которой кто-то очень умный включил для простоты все галочки. В том числе и db_denydatareader :-) |
29 сен 16, 14:40 [19723918] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |