Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странности с правами доступа, магии не бывает, в чем может быть проблема? / 10 сообщений из 10, страница 1 из 1
26.02.2021, 16:14
    #40049032
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
Началось всё с того, что пользователь получил ошибку:

авторСерверу-участнику "DOMAIN\web-design" не удалось обратиться к базе данных "db_photoreports" в текущем контексте безопасности.

Я со своей студии делаю запрос:

Код: sql
1.
2.
3.
4.
execute as user = 'DOMAIN\web-design'
go
use [db_photoreports]
go



К базе подключаюсь, всё отлично, в это же время другой администратор со своей студии выполняет тот же запрос и получает ту же ошибку.

Ок. Происходит запуск хранимки, которая ссылается на эту табличку из другой базы, пробую подключиться к базе, в которой лежит хранимка:

Код: sql
1.
2.
3.
4.
execute as user = 'DOMAIN\web-design'
go
use [db_nkc]
go



Теперь я получаю ту же ошибку, у второго администратора напротив, к db_nkc из под пользователя DOMAIN\web-design доступ есть.

Те, у с моей студии есть доступ к db_photoreports но нет к db_nkc, у второго человека есть доступ к db_nkc, но нет к db_photoreports из под пользователя DOMAIN\web-design.

Просим те же запросы выполнить третьего человека, у него ошибка и с той и с другой базой.

Выполняю:
Код: sql
1.
2.
3.
USE db_photoreport ;
GO
GRANT CONNECT TO 'DOMAIN\web-design';



Результата нет
Пробую
Код: sql
1.
2.
3.
USE db_photoreport ;
GO
GRANT CONNECT TO guest;



Подключается успешно у всех...

Код: sql
1.
2.
3.
USE db_photoreport ;
GO
DENY CONNECT TO guest;



Опять, у кого то подключается, у кого то нет.

Проблема вылезла сегодня, ну может вчера. Ну прям магия какая то, но понятно, что магии не бывает и причину нужно найти.
...
Рейтинг: 0 / 0
26.02.2021, 16:52
    #40049052
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
teCa,

Код: sql
1.
execute as login = ...
...
Рейтинг: 0 / 0
26.02.2021, 16:54
    #40049053
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
msLex
teCa,

Код: sql
1.
execute as login = ...



Всё тоже самое.
...
Рейтинг: 0 / 0
26.02.2021, 17:26
    #40049064
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
teCa,

у вас "дверка" прикрыта для выхода вне пределы своей бд.

сравните
Код: sql
1.
select is_trustworthy_on, name, suser_sname(owner_sid) from sys.databases
...
Рейтинг: 0 / 0
26.02.2021, 17:35
    #40049068
teCa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
felix_ff
teCa,

у вас "дверка" прикрыта для выхода вне пределы своей бд.

сравните
Код: sql
1.
select is_trustworthy_on, name, suser_sname(owner_sid) from sys.databases



Не совсем понял, первый столбец для всех БД кроме msdb 0
...
Рейтинг: 0 / 0
26.02.2021, 17:44
    #40049071
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
teCa,

ну так вот и учтите следующий момент.

для выхода из базы при имперсонации контекста должно выполняться два условия:
"дверь наружу" : база из которой пытаются выйти должна быть помечена trustworthy
"дверь внутрь" : владелец базы из которой выходят должен обладать правом AUTHENTICATE (или AUTHENTICATE SERVER в случае базы master) в базе куда пытаются ломиться.
...
Рейтинг: 0 / 0
26.02.2021, 17:50
    #40049073
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
для общего понимания концепции рекомендую прочесть вот это:

http://www.sommarskog.se/grantperm.html

Особенно блок cross-database access в Вашем случае
...
Рейтинг: 0 / 0
26.02.2021, 18:03
    #40049081
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
teCa,

в целях безопасности пользователям запрещено запрашивать данные из других баз без специальных разрешений.

Выполнять cross-database запросы не лучшая практика. Например, в случае отказа вспомогательной базы вы получите неисправность системы в целом. Нужен взвешенный подход и понимание рисков.
...
Рейтинг: 0 / 0
26.02.2021, 18:19
    #40049083
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
felix_ff

"дверь наружу" : база из которой пытаются выйти должна быть помечена trustworthy


это потенциальная дыра в секьюрити
в такой базе член группы db_owner может самостоятельно получить sysadmin, если dbo = sa

http://andreas-wolter.com/en/1810_privilege-escalation-to-sysadmin-via-trustworthy-database/
...
Рейтинг: 0 / 0
26.02.2021, 18:26
    #40049087
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности с правами доступа, магии не бывает, в чем может быть проблема?
komrad
felix_ff

"дверь наружу" : база из которой пытаются выйти должна быть помечена trustworthy


это потенциальная дыра в секьюрити
в такой базе член группы db_owner может самостоятельно получить sysadmin, если dbo = sa

http://andreas-wolter.com/en/1810_privilege-escalation-to-sysadmin-via-trustworthy-database/


да я то в курсе :)

я ответил ТСу на вопрос касательно почему у него олицетворение не работает. а уж открывать ли сундучек это решать ему и его руководству :)

dbo кстати не обязательно должен быть именно sa, подойдет любой член sysadmin или securityadmin
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странности с правами доступа, магии не бывает, в чем может быть проблема? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]