|
Про доступ
|
|||
---|---|---|---|
#18+
Поставили задачу подключить внешний сервис к боевой БД. Связался с разработчиками сервиса - указали десяток таблиц к которым им нужен доступ. 1. Создал логин на сервере. ему сразу же прописалась роль public. Роль public убрать не могу. Ладно. 2. В базе данных создал пользователя, соответствующего логину. Указал схему по умолчанию guest. Создал роль в которой разрешил доступ к необходимым таблицам. 3. Подключаюсь. Доступ к таблицам есть. К сожалению ко всем трем сотням таблиц. 4. Поставил запрет на доступ к одной - пропала возможность с ней манипулировать. Не хочется ставить явный запрет на все примерно 290 таблиц. База боевая. что там разработчики намутили не понятно и не хочется блокировать работу фирмы на пару часов или дней. Посоветуйте может скриптом пройтись по всем таблицам для конкретного пользователя и установить запреты на все таблицы. И самое главное скрипт. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 07:31 |
|
Про доступ
|
|||
---|---|---|---|
#18+
alex_ll Поставили задачу подключить внешний сервис к боевой БД. Связался с разработчиками сервиса - указали десяток таблиц к которым им нужен доступ. 1. Создал логин на сервере. ему сразу же прописалась роль public. Роль public убрать не могу. Ладно. роль Public не отзываемая alex_ll 2. В базе данных создал пользователя, соответствующего логину. Указал схему по умолчанию guest. Создал роль в которой разрешил доступ к необходимым таблицам. 3. Подключаюсь. Доступ к таблицам есть. К сожалению ко всем трем сотням таблиц. полагаю, что public в базе выдан доступ к таблицам alex_ll 4. Поставил запрет на доступ к одной - пропала возможность с ней манипулировать. Не хочется ставить явный запрет на все примерно 290 таблиц. База боевая. что там разработчики намутили не понятно и не хочется блокировать работу фирмы на пару часов или дней. Посоветуйте может скриптом пройтись по всем таблицам для конкретного пользователя и установить запреты на все таблицы. И самое главное скрипт. что-то на основе sys.objects Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:02 |
|
Про доступ
|
|||
---|---|---|---|
#18+
alex_ll, проверьте разрешения для public или guest. У вас могли guest добавить в роль db_owner, например. Или разрешиться всё для public. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:45 |
|
Про доступ
|
|||
---|---|---|---|
#18+
alex_ll, 1. Создать отдельную схему (MySchema). 2. Создать отдельную роль (MyRole) и добавить туда пользователя(лей). 3. Для каждой таблицы из перечня необходимых для сервиса в MySchema создать синоним. 4. Выполнить Код: sql 1. 2.
Разработчики сервиса общаются с БД через созданные синонимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 11:46 |
|
Про доступ
|
|||
---|---|---|---|
#18+
invm, синонимы боюсь не подойдут. У них сервис что то типа агрегатора, есть несколько (может несколько десятков) систем к которым они подсоединяются. Думаю из за нас они свои запросы переписывать не будут. У них сайт и онлайн запись к специалистам. Если выбрали нашего - то обращаются к нашей базе. Ну и расписание на сайт подтягивают. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 13:33 |
|
Про доступ
|
|||
---|---|---|---|
#18+
alex_ll, Значит придется отозвать у public все разрешения на таблицы (скорее всего, public включен db_datareader и db_datawriter). Создать роль для обычных пользователей и дать ей необходимые разрешения. Можно на уровне схемы, не обязательно потаблично. Создать роль для сервиса и дать ей необходимые разрешения. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.07.2021, 14:14 |
|
|
start [/forum/topic.php?fid=46&fpage=18&tid=1684464]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 259ms |
total: | 382ms |
0 / 0 |