Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос для ДБА -- секюрити / 23 сообщений из 23, страница 1 из 1
04.01.2002, 20:09
    #32020207
папа Карло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Есть необходимость ограничить доступ для девелоперов к изменению модели и системных данных в некоторых таблицах. Все таблицы и код живут в неймспейсе dbo и перенести код из этого неймспейса невозможно. Проект огромный и уследить кто из девелоперов где и что натворил невозможно, поэтому есть желание дать девелоперам только право на создание, модифицирование и удаление СП и функций, чтение, удаление и упдей записей в выбранных таблицах в неймспейсе dbo и только это. СКЛ Сервер 2000. Это возможно сделать? Спасибо!
...
Рейтинг: 0 / 0
06.01.2002, 02:01
    #32020223
Буратино
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Привет, папа!

Ну ты даёшь, пап, совсем уже забыл про Азбуку, про BOL то есть!
А BOL, ведь там почти всё есть, а именно про это твоё дело.
Короче, смотри там, пап, про fixed database and server roles.

Пап, я в твою проблему не вгрызался особо конечно, так как инфы
маловато, но по идее встроенных ролей должно хватить.Хотя пиши,
если что. Ну ладно, пап, я побежал, а то Мальвина уже заждалась...

Пока!

Нежно любящий тебя Буратино
...
Рейтинг: 0 / 0
06.01.2002, 04:50
    #32020224
папа Карло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
как был деревянным, так им и остался. я много что попробовал уже, но не мое это дело заниматься админством, а приходится. когда не знаешь, то лучше молчать сойдешь за умного.
...
Рейтинг: 0 / 0
06.01.2002, 22:45
    #32020234
Буратино
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Да, как ты был, папа, старым пнём так ты им и остался!
Даже проблему обрисовать нормально не можешь. А я тебе ещё помочь хотел...

И чего ж ты, старый Карла, полез в админскую епархию,
если она тебя даже не касается?
...
Рейтинг: 0 / 0
07.01.2002, 06:52
    #32020239
MadDog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
А рассмотрение оператора GRANT поможет предотвратить семейную драму?
...
Рейтинг: 0 / 0
07.01.2002, 07:30
    #32020240
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
>поэтому есть желание дать девелоперам только право на создание, модифицирование и удаление СП и функций
Вот с первым проблем нет: лучше создать роль, например Developers, и назначить ей права
GRANT CREATE FUNCTION, CREATE PROCEDURE TO Developers
Правда, т.к. ваши девелоперы не члены db_owner, то если они при создании не будут указывать владельца dbo, то будут автоматически становиться владельцами создаваемых процедур. Т.е. придется решать этот вопрос административно.

А вот ALTER и DROP объекта могут выполнять владелец и члены групп db_owner и db_ddladmin. Владелец и db_owner вам не подходят(владельцем всех объектов вы хотите видеь dbo, ведь так ?, ну а db_owner - это слишком много прав). Остается db_ddladmin - правда у члена роли будет право выполнять абсолютно все команды DDL.


>чтение, удаление и упдей записей в выбранных таблицах в неймспейсе dbo
Тут совсем все просто: создается роль и наделяется сответсвующими правами.

IMHO
Может быть надо ставить вопрос шире. Организовывать что-то вроде тестовой/девелоперской базы, в которой можно очень многое. После отладки процедур наделенные соответсвующими правами люди переносят код в реально работающую базу.

Либо девелопер на стадии отладки является владельцем процедуры и после окончания откладки опять же специальный человек меняет владельца процедуры, отбирая таким образом права у девелопера.

Вообщем вопрос не простой и уникального рецепта ршения только с помощью встроенных средств IMHO нет.
...
Рейтинг: 0 / 0
07.01.2002, 07:59
    #32020241
MadDog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Браво!
Glory точен как всегда.

Действительно, я как-то сразу не обратил внимания что папа Карло пытается "приструнить" разработчиков на "боевой" базе. Из собственного опыта могу подтвердить, что подобные попытки как правило бесплодны.
Мне в итоге пришлось выбить у руководства отдельный сервер для разработчиков. Теперь разработчикам раздолье - backup/restore, shutdown/restart в любой момент и сколько захочешь.
...
Рейтинг: 0 / 0
07.01.2002, 17:58
    #32020253
папа Карло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Итак, дабы не быть голословным... Около 10 девелопент серверов... Команды разработчиков от 4 до 45 человек... Отдельные серваки с которыми нет проблем - продакшен, стейжинг и сервер для тестеров. На последних трех серверах все нормально. туда есть доступ только у билд-группы.

Прикол в том, что все живет в нейм-спейсе ДБО. База огромна и двинуть СП и СФ в другой неймспейс просто невозможно. Остается только настроить логины или роль таким образом, что люди будут способны делать только СП и СФ. Моя задача защитить модель и "системные" таблицы в таком енвайронменте. Представьте, что над проектов работает 45 человек и тут одному "самомому умному" захотелось добавить поле в таблицу, он его делает и потом все остальные думают, что так и надо... База террабайтная и куда я клоню наверное понятно.

Получилось так, что у нас нет ДБА... не спрашивайте почему. Оно так. Буду благодарен любому совету как создать логин/роль у которой будет _только_ возможность зоздавать, удалять и изменять СП и СФ с неймспейсе ДБО. Для того чтобы разгрантить права на таблицы у меня мозгов хватит.

Спасибо.
...
Рейтинг: 0 / 0
08.01.2002, 08:03
    #32020274
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Ещё раз все попорядку
Вы хотите, чтобы в рамках одной базы

1. Владельцем всех объектов был dbo.
Для того, чтобы создавать объекты, принадлежащие другому пользователю(читай dbo), роль Developers должена быть
- dbo(не подходит, т.к. у нас не один пользоватеь а группа)
- членом роли db_owner(подходит, почему бы и нет)
- членом роли db_ddladmin (тоже подходит)


2. Роль Developers не имела права на команды ALTER и DROP на некоторые таблицы
Обычно права на команды ALTER и DROP для объекта внутри базы имеют
- владелец объекта(в нашем случае это всегда dbo, см.п.1, не подходит)
- член роли db_owner(ага! значит Developers сюда пускать нельзя)
- член роли db_ddladmin (и сюда тоже)

3. Роль Developers имела права создание процедур и функций для владельца
См.п.1

4. Роль Developers имела права редактирование процедур и функций
См.п.2

Т.е. налицо явное противоречие: вы хотите чтобы в отношении некоторых объектов(процедур и функций) роль Developers вела себя как dbo, а в отношении других(таблицы) - как обыкновенный пользователь. В рамках одной базы поставленные вами условия IMHO выполнить невозможно.

Возможные решения
1. В рамках одной базы: разрешить членам Developers создавать процедуры и функции и владеть ими. Тогда они смогут редактировать и удалять их, не имея членства в db_owner и ddl_admin, что в свою очередь не позволит им(если не будут даны права) изменять структуры таблиц.

2. В рамках двух баз: в одной базе роль Developers входит в роль db_owner. В этой базе разрешено(!административно!) создание только процедур и функций. Во второй базе находяся таблицы и здесь аналогичная роль Developers имеет строго назначенные права, исключающие возможность изменения и/или создания объектов.
Такое решение потребует
- чтобы пользователи были продублированы в обеих базах
- чтобы обращение к объектам второй базы из процедур первой базы происходило с указанием имени базы (это в свою очередь может повлечь наверное проблемы на стадии промышленного внедрения, когда имя базы придется менять)
- .....

3. Организация работы разработчиков с базой не напрямую, а через средства 3-их фирм, где имеются возможности отслеживания внесенных изменений.

4. Какие-то административные решения о порядке изменения критических объектов

5. .....
...
Рейтинг: 0 / 0
08.01.2002, 08:54
    #32020279
Вопрос для ДБА -- секюрити
Лучшая драка - которая не состоялась, а самое лучшее решение - это когда оно перестает быть необходимым.
Можно поступить проще:
Добиться административными мерами, чтобы каждый разработчик отдавал в общую копилку скрипт на те изменения, которые он произвел. Все равно эти скипты понадобяться чтобы применить их на боевом сервере и др. распространения. Таким образом проблема отпадет сама собой за ненадобностью, а люди научаться дисциплине (не сразу, конечно же, а после N-ного количества гвиздюлей).
...
Рейтинг: 0 / 0
08.01.2002, 09:29
    #32020282
Garry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Два Предложения

1. (уже прозвучавшее) Девелоперы ДОЛЖНЫ (или ОБЯЗАНЫ) девелоперить в отдельной БД
(она может быть копией рабочей БД)!!!!!
Далее все наработки переносятся на тестовую БД где тестируются (что не лишне при такой команде разработчиков)
далее наработки переносятся на рабочую БД.
Такой подход мне кажется позволяет обеспечивать наилучьшее качество, хотя и пораждает ряд дополнительных проблем


2. Закрыть доступ нельзя, но можно настроить аудит!
Запускаем профайлер, создаем новую трассировку, включаем в нее единственный Event TSQL SQL:StmtComplete
Настраиваем фильтр TEXT include - alter table; create table; drop table

Запускаем трассировку.... и имена и деяния "самых умных" девелоперов у Вас на экране
Далее можно все выше сказанное перевести на T-SQL, создать Job, который будет стартовать вместе с сервером.... .... и т.д. и т.п.

Ресурсов такой трассер много скушать не должен т.к. в самом хорошем варианте результатов в трассере быть не должно


PS опробовал на SQL Server 7.0
...
Рейтинг: 0 / 0
08.01.2002, 09:58
    #32020284
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Присоединяюсь к мнению, что разработчиков к продуктивному серверу подпускать нельзя - ну лишите Вы их права на изменение таблиц, это же не помешает им грохнуть ВСЕ данные в этих таблицах?
...
Рейтинг: 0 / 0
08.01.2002, 10:37
    #32020290
MadDog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Еще раз внимательно все перечитал:
"Около 10 девелопент серверов... Команды разработчиков от 4 до 45 человек", "База террабайтная...", "у нас нет ДБА"
Странно что при таких ресурсах нет ответственного лица(лиц), отвечающих за согласованность изменений... "не спрашивайте почему".

Не обижайтесь уважаемый папа Карло, но налицо очень советская ситуация - попытка автоматизировать бардак.
Любая серьезная безопасность не может обойтись без административных мер (см. реплику г-на Уфимцева)
...
Рейтинг: 0 / 0
08.01.2002, 20:09
    #32020316
папа Карло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Меня не понимают. Девелоперы НЕ имеют доступа к БОЕВЫМ базам. К БОЕВОЙ базе нет доступа даже у меня. В компании нет ДБА, потому-что... политика такая -- дорого это и кризис в стране. Вся задача в том, что необходимо ограничить права на _девелопмент_ сервере, на котором девелоперы тренируют свой код. Девелоперы не делают ни модель ни индексы ни поля, для этого есть вполне определенные люди. Прикол в том, что если один девелопер добавляет поле, то другие считают, что это сделал архитектор и так и надо, потом когда я нахожу эту фигню начинаются разборы и поле удаляется... ломая часть кода.

2Глеб: Хорошая мысль смотреть весь код... 750 таблиц, про число полей молчу, 3500 СПешек, про размер в Мбах тоже. билд раз в два дня. кто способен?

Я вот что хочу попробовать: дать пользователю группу db_owner и Developers, в группе Девелоперс сказать deny все, что не надо. Как думаете будет работать? В доке написано, что ктобы чувак не был, если есть хоть один deny на ресурс, то все.
...
Рейтинг: 0 / 0
08.01.2002, 20:23
    #32020317
папа Карло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Итак... я попробовал. Вся выглядит так, как-будто у меня получилось. создаем роль Developers,

deny all to Developers
grant .... to Developers -- только то, что надо разрешаем

берем пользователя, даем ему db_ddladmin и Developers на нужные базы.

Девелоперов заставляем использовать dbo.* когда создают СПшки. Все просто.

Есть ли способ не писАть dbo перед СПхами? Не пропустил ли я чего?

Всем спасибо! Глори, персональное.
...
Рейтинг: 0 / 0
08.01.2002, 21:35
    #32020318
Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
2 Папа Карло :
Советую скачать Change manager на www.embarcadero.com(один продукт,работает почти под всеми платформами для баз данных), найти ключ в инете и пользоваться потихоньку...Будет видно по нему что было изменено. Можно делать архивные снимки с базы и сравнивать во времени, синхронизировать что нужно и т.д...Даже если юзвери забудут проинформировать, что они там забабахали нового, будет все прекрасно видно....
...
Рейтинг: 0 / 0
08.01.2002, 21:54
    #32020319
Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
2 Папа Карло. Забыл добавить. Понял что Вы в Ванкувере. Я в Эдмонтоне. Если что, мой адрес vladimirm_2@hotmail.com. Разница по времени у нас небольшая. Можем пообщаться....
...
Рейтинг: 0 / 0
09.01.2002, 03:41
    #32020330
папа Карло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
Оно работает, но(!) я не могу пользователю запретить дроп таблиц, спешек, итд. алтерить тоже могут. я не понял, deny all to Developers че, не работает?? Неужели майкрософт не разрешает делать денай на такие операции??
...
Рейтинг: 0 / 0
09.01.2002, 06:57
    #32020334
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
2папа Карло
Так я вам про что и толкую

Есть права на структуру объектов и на их содержимое.
Нет DENY на ALTER и DROP ! Запрет/разрешение на ALTER и DROP определяется членством в роли или фактом владением объектом (см п.2 моего предыдущего сообщения и вывод)
...
Рейтинг: 0 / 0
09.01.2002, 20:24
    #32020382
папа Карло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
MS must die.
...
Рейтинг: 0 / 0
09.01.2002, 23:48
    #32020383
Moth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
А ты Карло возьми FileMaker или Кларион.
И я на тебя тогда посмотрю.

Moth.
...
Рейтинг: 0 / 0
14.01.2002, 12:23
    #32020646
Александр Гладченко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
На "MS must die"
Проблема не в MS, а в не правильной организации, повидимому, достаточно большого проекта. Если в день по два билда и без системы контроля качества, что же в результате получится.... Жалко Ваши терабайты.
...
Рейтинг: 0 / 0
14.01.2002, 14:08
    #32020660
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос для ДБА -- секюрити
2 папа Карло
Как то пропустил темку

Как здесь уже говорили, ну бардак у вас, ето ж надо доверить схему данных девелоперам!
Насколько я понял ваша контора софт пишет, если так мне только остается удивляться как вы там производите контроль версий
Нужен один или несколько разработчиков БД которые и разрабатывают схему данных ну и пишут СП, если девелоперу нужна какая то СП или их набор, то он запрашивает их у разработчика - в этом случае как минимум 2 плюса
1. Разработчик БД напишет более эффективные запросы, чем программер
2. Не будет бардака с СП
Ну и понятное дело не обойтись без CASE.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос для ДБА -- секюрити / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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