powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Про доступ
6 сообщений из 6, страница 1 из 1
Про доступ
    #40086607
Фотография alex_ll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставили задачу подключить внешний сервис к боевой БД. Связался с разработчиками сервиса - указали десяток таблиц к которым им нужен доступ.
1. Создал логин на сервере. ему сразу же прописалась роль public. Роль public убрать не могу. Ладно.
2. В базе данных создал пользователя, соответствующего логину. Указал схему по умолчанию guest. Создал роль в которой разрешил доступ к необходимым таблицам.
3. Подключаюсь. Доступ к таблицам есть. К сожалению ко всем трем сотням таблиц.
4. Поставил запрет на доступ к одной - пропала возможность с ней манипулировать.

Не хочется ставить явный запрет на все примерно 290 таблиц. База боевая. что там разработчики намутили не понятно и не хочется блокировать работу фирмы на пару часов или дней. Посоветуйте может скриптом пройтись по всем таблицам для конкретного пользователя и установить запреты на все таблицы. И самое главное скрипт.
...
Рейтинг: 0 / 0
Про доступ
    #40086661
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_ll
Поставили задачу подключить внешний сервис к боевой БД. Связался с разработчиками сервиса - указали десяток таблиц к которым им нужен доступ.
1. Создал логин на сервере. ему сразу же прописалась роль public. Роль public убрать не могу. Ладно.

роль Public не отзываемая
alex_ll

2. В базе данных создал пользователя, соответствующего логину. Указал схему по умолчанию guest. Создал роль в которой разрешил доступ к необходимым таблицам.
3. Подключаюсь. Доступ к таблицам есть. К сожалению ко всем трем сотням таблиц.

полагаю, что public в базе выдан доступ к таблицам

alex_ll

4. Поставил запрет на доступ к одной - пропала возможность с ней манипулировать.

Не хочется ставить явный запрет на все примерно 290 таблиц. База боевая. что там разработчики намутили не понятно и не хочется блокировать работу фирмы на пару часов или дней. Посоветуйте может скриптом пройтись по всем таблицам для конкретного пользователя и установить запреты на все таблицы. И самое главное скрипт.


что-то на основе sys.objects

Код: sql
1.
select 'deny select,update,delete on '+quotename(schema_name(schema_id))+'.'+quotename(name) from sys.objects where type='U' and name not in ('a','b','c',...)
...
Рейтинг: 0 / 0
Про доступ
    #40086685
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_ll,

проверьте разрешения для public или guest. У вас могли guest добавить в роль db_owner, например. Или разрешиться всё для public.
...
Рейтинг: 0 / 0
Про доступ
    #40086686
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_ll,

1. Создать отдельную схему (MySchema).
2. Создать отдельную роль (MyRole) и добавить туда пользователя(лей).
3. Для каждой таблицы из перечня необходимых для сервиса в MySchema создать синоним.
4. Выполнить
Код: sql
1.
2.
deny select, insert, update, delete on schema::dbo to MyRole;
grant select, insert, update, delete on schema::MySchema to MyRole;



Разработчики сервиса общаются с БД через созданные синонимы.
...
Рейтинг: 0 / 0
Про доступ
    #40086719
Фотография alex_ll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm, синонимы боюсь не подойдут. У них сервис что то типа агрегатора, есть несколько (может несколько десятков) систем к которым они подсоединяются. Думаю из за нас они свои запросы переписывать не будут. У них сайт и онлайн запись к специалистам. Если выбрали нашего - то обращаются к нашей базе. Ну и расписание на сайт подтягивают.
...
Рейтинг: 0 / 0
Про доступ
    #40086738
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_ll,

Значит придется отозвать у public все разрешения на таблицы (скорее всего, public включен db_datareader и db_datawriter).
Создать роль для обычных пользователей и дать ей необходимые разрешения. Можно на уровне схемы, не обязательно потаблично.
Создать роль для сервиса и дать ей необходимые разрешения.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Про доступ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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