0 / 0 / 0
Регистрация: 28.02.2024
Сообщений: 4
|
|
1 | |
Доступ к вьюшке без доступа её источнику28.02.2024, 18:47. Показов 606. Ответов 9
Прошу знатоков подсказать способ решения следующей задачи: на 1 sql-сервере есть несколько БД, одна из них содержит таблицу представлений, в которой прописан select на несколько таблиц из других БД этого сервера. Возможно ли завести пользователя сервера чтобы у него были права только на select к этому представлению, но он бы не видел другие базы данных (или хотя бы не имел к ним доступ)?
0
|
28.02.2024, 18:47 | |
Ответы с готовыми решениями:
9
доступ к virtual folder без анонимного доступа Чтобы с каждого компа был доступ в локальную сеть по wi-fi но без доступа в Интернет Как подключиться к источнику данных программно (без мастеров) Сохранение данных в программе без создания/подключения к внешнему источнику данных |
29.02.2024, 09:34 | 2 |
Seneka7608, Делаете логин на сервере, его пробрасываете на нужную БД и добавляете его в роль БД db_datareader. Этот пользователь сможет только просматривать данные (SELECT) и только в этой БД, другие он не увидит.
1
|
0 / 0 / 0
Регистрация: 28.02.2024
Сообщений: 4
|
|
01.03.2024, 09:08 [ТС] | 3 |
Новый логин видит все БД при наличии роли public, убрать её не получается (совсем отказываться от public тоже не вариант, это сломает работу других пользователей). Добавление роли db_datareader в доступе ничего не меняет. Можно отозвать права на просмотр всех баз, но тогда и нужная база пропадает, а делать пользователя овнером нужной базы тоже нельзя, он будет иметь право смотреть код представления.
А нельзя ли сделать чтобы запрос в представлении выполнялся под правами другого пользователя? Знаю что можно сделать функцию и запускать её через EXECUTE AS, но это недопустимо для представления
0
|
0 / 0 / 0
Регистрация: 28.02.2024
Сообщений: 4
|
|
01.03.2024, 12:32 [ТС] | 5 |
Чтобы вьюшка получила данные под этим логином, нужно ему выдать права на SELECT используемых ей таблиц, т.е. этот логин сможет зайти в эту БД и посмотреть все данные этих таблиц, а не только то что возвращает ему вьюшка. Есть, конечно, надежда что пользователь не сможет найти эти БД и эти таблицы (просмотр кода вьюшки ему недоступен и ему придётся перебирать все доступные таблицы), но такая возможность не устраивает требования безопасности.
Т.е. доступ к источнику вьюшки остаётся
0
|
124 / 93 / 33
Регистрация: 27.07.2022
Сообщений: 302
|
|
01.03.2024, 14:03 | 6 |
Это называется ownership chains. Грубо говоря - если владелец вьюхи владеет всеми объектами, куда эта вьюха лезет, то пользователю достаточно получить права на select из вьюхи. Если владельцы разные, то пользователю нужно дополнительно прописать доступ на объекты, где другой владелец. Плюс если лезет в другие базы, то надо cross db ownership chaining на сервере и на базах включать
0
|
563 / 255 / 113
Регистрация: 12.04.2022
Сообщений: 943
|
|
01.03.2024, 15:03 | 8 |
Вставлю 5 коп.
1. cross db ownership chaining - перекрывает настройку DB_CHAINING 2. Лучше использовать DB_CHAINING. 3. Либо использовать сертификат.
0
|
0 / 0 / 0
Регистрация: 28.02.2024
Сообщений: 4
|
|
01.03.2024, 15:07 [ТС] | 9 |
Спасибо! Буду экспериментировать
0
|
124 / 93 / 33
Регистрация: 27.07.2022
Сообщений: 302
|
|
01.03.2024, 15:15 | 10 |
Угу... Я просто 'и' вместо 'или' написал впопыхах, а потом уже поздно было редактировать..
0
|
01.03.2024, 15:15 | |
01.03.2024, 15:15 | |
Помогаю со студенческими работами здесь
10
Опрос машин в сети без прав админа и без доступа на роутер Gpedit.msc и system32, в папку не зайти без редактора, редактор не поставить без доступа Как можно закачать локальные файлы с помошью php+JS на webserver без доступа по FTP и без участия пользователя ? Вопрос по вьюшке Поиск По Вьюшке Создание SelectListItem во вьюшке Доступ к папке - Нет доступа! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |