|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
MS SQL Server 2000 SP3 У нас есть БД с конфиденциальными данными, к которой пользователи не имеют доступа. В БД есть table1. Возникла задача дать одной новой учетной записи user1 право получать данные по запросу: select name from table1 where country='Honduras' и больше никаких прав. Насколько я понимаю, для этого лучше всего создать view и дать пользователю user1 права ее чтения. Но для чтения view пользователю потребуется и право читать table1. Но тогда, следовательно, пользователь user1 сможет при желании прочитать непосредственно table1 и увидеть другие поля и другие записи в ней. А этого мы допустить не можем. Правильно ли я понимаю ситуацию? Каким образом правильнее всего решить описанную задачу - дать пользователю право только читать только данные из запроса (view) и больше ничего? Возможен также вариант с созданием job'а, который будет выгружать нужные данные в отдельную таблицу, чтобы user1 их читал. Но этот вариант плох из-за того, что хоть обращения user1 к БД будут редки и нерегулярны, но он желает видеть актуальную информацию, что заставит нас ставить job на слишком частей расписание, а это создаст излишнюю назгрузку на БД. Короче говоря, как такая задача решается грамотно? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 12:27 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
а почему б не сделать ХП которая выбирала б тока те поля которые пользователь может видеть и дать ему на нее права... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 12:31 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
Напишите хранимую процедуру, содержащую данный запрос и дайте права пользователю на иполнение этой процедуры. Никаких прав на таблицу давать не надо будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 12:31 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
anth Насколько я понимаю, для этого лучше всего создать view и дать пользователю user1 права ее чтения. Но для чтения view пользователю потребуется и право читать table1. Но тогда, следовательно, пользователь user1 сможет при желании прочитать непосредственно table1 и увидеть другие поля и другие записи в ней. А этого мы допустить не можем. Правильно ли я понимаю ситуацию? Неправильно. Права на view никак не распространяются на права на table. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 12:35 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
для чтения view пользователю потребуется и право читать table1 Разве? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 12:39 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
anthПравильно ли я понимаю ситуацию? ... Каким образом правильнее всего решить описанную задачу - дать пользователю право только читать только данные из запроса (view) и больше ничего? Неправильно понимаете - view будет видеть все таблицы, которые внутри нее используются. А вот решение в итоге - правильное. Только вот не понятно - нельзя было за 5 минут эту гипотезу проверить на "живом" сиквеле? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 12:40 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
Большое спасибо всем ответившим. Разумеется, все получилось. Меня отчего-то склинило. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:24 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
anth Разумеется, все получилось. а что именно получилось и как? Сейчас наблюдаем такую же проблему: есть база данных с таблицами. На том же сервере в другой базе есть вьюха, ссылающаяся на таблицы первой базы. Создали группу пользователей, дали доступ на select к вьюхе. Некоторые пользователи этой группы видят данные без проблем (подключаются екселем). А другим пользователям той же группы при попытке подключиться к вьюхе выдается сообщении об отсутствии прав к базе данных, в которых лежат таблицы , как будто бы они напрямую пытаются смотреть в таблицы (куда доступа у них нет), а не вьюху (куда доступ есть) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 17:04 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
нуб987, В таблицы они и смотрят, представление - это сохранённый на сервере запрос. Т.е. тех пользователей нет в базе с таблицами или нет прав в той базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 17:23 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
Владислав Колосов Т.е. тех пользователей нет в базе с таблицами в базе с таблицами нет НИКОГО из них. Все есть только в базе с вьюхой. При этом часть людей к вьюхе обращается нормально. А части людей пишется ошибка о доступе к базе с таблицами перепроверил все группы у этих пользователей. Никого из них нет в базе с таблицами. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 21:17 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
нуб987, Пользователи на сервер заходят под своими виндовыми учетками, поди? Тогда сложно отследить реальные права - кто-то может быть членом группы в AD, которая является членом другой группы, которая имеет доступ к той базе или права уровня sysadmin на всем инстансе. Пилите, Шура, пилите. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2020, 06:54 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
авторперепроверил все группы у этих пользователей. Никого из них нет в базе с таблицами. Надо сделать exec as login='login_without_problem' https://docs.microsoft.com/en-us/sql/t-sql/statements/execute-as-transact-sql?view=sql-server-ver15 на базе с таблицами. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2020, 08:47 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
нуб987, 1. Владельцем баз сделать sa. 2. Включить у баз cross database ownership chaining. 3. Представление и таблицы должны быть в схемах, у которых владелец dbo. 4. Профит. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2020, 09:27 |
|
Права на view и права на tables
|
|||
---|---|---|---|
#18+
invm нуб987, 1. Владельцем баз сделать sa. 2. Включить у баз cross database ownership chaining. 3. Представление и таблицы должны быть в схемах, у которых владелец dbo. 4. Профит. Где-то еще должен быть пункт grant connect to guest в базе с таблицами ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2020, 09:31 |
|
|
start [/forum/topic.php?fid=46&fpage=63&tid=1686257]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 300ms |
total: | 447ms |
0 / 0 |