powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Права на view и права на tables
15 сообщений из 15, страница 1 из 1
Права на view и права на tables
    #35299297
anth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 на слишком частей расписание, а это создаст излишнюю назгрузку на БД.

Короче говоря, как такая задача решается грамотно?
Заранее спасибо.
...
Рейтинг: 0 / 0
Права на view и права на tables
    #35299312
а почему б не сделать ХП которая выбирала б тока те поля которые пользователь может видеть и дать ему на нее права...
...
Рейтинг: 0 / 0
Права на view и права на tables
    #35299318
Anddros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишите хранимую процедуру, содержащую данный запрос и дайте права пользователю на иполнение этой процедуры. Никаких прав на таблицу давать не надо будет.
...
Рейтинг: 0 / 0
Права на view и права на tables
    #35299343
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anth
Насколько я понимаю, для этого лучше всего создать view и дать пользователю user1 права ее чтения. Но для чтения view пользователю потребуется и право читать table1. Но тогда, следовательно, пользователь user1 сможет при желании прочитать непосредственно table1 и увидеть другие поля и другие записи в ней. А этого мы допустить не можем.

Правильно ли я понимаю ситуацию?

Неправильно. Права на view никак не распространяются на права на table.
...
Рейтинг: 0 / 0
Права на view и права на tables
    #35299360
Проходимец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для чтения view пользователю потребуется и право читать table1
Разве?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table _b (rec_id int identity ( 1 , 1 ), myid int, myval varchar( 100 ))

insert into _b (myid, myval)
select  1 , 'Значение 1' union 
select  1 , 'Значение 2' union
select  2 , 'Значение 3' union 
select  2 , 'Значение 4' 
go
deny select on _b to myuser
go
create view dbo.view2
as
select * from _B where (myid =  1 )
go
grant select on view2 to myuser
Ну и потом в коннекте от myuser
Код: plaintext
1.
2.
select * from view2
select * from _b
В первом селекте получится 2 записи, второй селект будет ругаться...
...
Рейтинг: 0 / 0
Права на view и права на tables
    #35299362
Фотография Влом регистрироваться
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anthПравильно ли я понимаю ситуацию?
...
Каким образом правильнее всего решить описанную задачу - дать пользователю право только читать только данные из запроса (view) и больше ничего?


Неправильно понимаете - view будет видеть все таблицы, которые внутри нее используются.

А вот решение в итоге - правильное. Только вот не понятно - нельзя было за 5 минут эту гипотезу проверить на "живом" сиквеле?
...
Рейтинг: 0 / 0
Права на view и права на tables
    #35300541
anth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо всем ответившим. Разумеется, все получилось.

Меня отчего-то склинило.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Права на view и права на tables
    #39944308
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anth
Разумеется, все получилось.

а что именно получилось и как?

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

Создали группу пользователей, дали доступ на select к вьюхе.
Некоторые пользователи этой группы видят данные без проблем (подключаются екселем). А другим пользователям той же группы при попытке подключиться к вьюхе выдается сообщении об отсутствии прав к базе данных, в которых лежат таблицы , как будто бы они напрямую пытаются смотреть в таблицы (куда доступа у них нет), а не вьюху (куда доступ есть)
...
Рейтинг: 0 / 0
Права на view и права на tables
    #39944317
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987,

В таблицы они и смотрят, представление - это сохранённый на сервере запрос. Т.е. тех пользователей нет в базе с таблицами или нет прав в той базе.
...
Рейтинг: 0 / 0
Права на view и права на tables
    #39944387
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Т.е. тех пользователей нет в базе с таблицами

в базе с таблицами нет НИКОГО из них. Все есть только в базе с вьюхой.
При этом часть людей к вьюхе обращается нормально. А части людей пишется ошибка о доступе к базе с таблицами

перепроверил все группы у этих пользователей. Никого из них нет в базе с таблицами.
...
Рейтинг: 0 / 0
Права на view и права на tables
    #39944460
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987,

Пользователи на сервер заходят под своими виндовыми учетками, поди? Тогда сложно отследить реальные права - кто-то может быть членом группы в AD, которая является членом другой группы, которая имеет доступ к той базе или права уровня sysadmin на всем инстансе.

Пилите, Шура, пилите.
...
Рейтинг: 0 / 0
Права на view и права на tables
    #39944471
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторперепроверил все группы у этих пользователей. Никого из них нет в базе с таблицами. Надо сделать
exec as login='login_without_problem'
https://docs.microsoft.com/en-us/sql/t-sql/statements/execute-as-transact-sql?view=sql-server-ver15
на базе с таблицами.
...
Рейтинг: 0 / 0
Права на view и права на tables
    #39944479
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987,

1. Владельцем баз сделать sa.
2. Включить у баз cross database ownership chaining.
3. Представление и таблицы должны быть в схемах, у которых владелец dbo.
4. Профит.
...
Рейтинг: 0 / 0
Права на view и права на tables
    #39944482
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
нуб987,

1. Владельцем баз сделать sa.
2. Включить у баз cross database ownership chaining.
3. Представление и таблицы должны быть в схемах, у которых владелец dbo.
4. Профит.


Где-то еще должен быть пункт
grant connect to guest
в базе с таблицами
...
Рейтинг: 0 / 0
Права на view и права на tables
    #39944487
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
Где-то еще должен быть пункт
grant connect to guest
в базе с таблицами
Да. Забыл.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Права на view и права на tables
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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