Разрешите войти? Фленов Михаил aka Horrific Спецвыпуск: Хакер, номер #052, стр. 052-074-6 Чтобы изменить права доступа процедуры и функции, нужно щелкнуть по ее имени правой кнопкой и в появившемся меню выбрать All tasks/Manage permissions. Открывается окно, как и при назначении прав для вьюшек, но для процедур можно изменять только колонку EXEC, а для функций EXEC и DRI. Политика прав Некоторые администраторы любят назначать права используя в качестве основы какую-то существующую роль, например, public. Это неверно, потому что в этой роли могут присутствовать права, абсолютно не нужные пользователям. Лучше стараться назначать права с самого нуля. Я всегда начинаю новую роль с чистого листа и предоставляю только самое необходимое - минимум. Если пользователи просят больше прав, которые действительно нужны, приходится их повышать. Еще одна проблема понижения разрешений кроется в привычке. Пользователи могут привыкнуть к тому, что им многое разрешено, и потом запрет будет происходить с большим скандалом. Никому не нравится, когда его права ущемляют. Таблицы/базы Базы данных хранят свои настройки и секретные параметры не в реестре и не в отдельных файлах, а в системных таблицах/базах данных, которые ничем не отличаются от других объектов базы и на которые также могут назначаться права. Ни в коем случае не разрешай пользователям права на доступ к этим таблицам без особой надобности. В SQL-сервере особо важные системные данные хранятся в базах данных master и msdb. Именно эти базы данных необходимо защищать. В Oracle дело обстоит иначе, потому что там каждая база данных существует как отдельный объект и системные таблицы располагаются вперемешку с пользовательскими. Практически все серверы баз данных предлагают (или не предлагают, но делают это) установить тестовые базы данных, которые могут использоваться для тестирования системы или обучения. Если у тебя установлено такое, обязательно избавься от этого, потому что на эти базы устанавливается публичный доступ. Если взломщик будет знать имена или параметры любого реально существующего объекта в системе, то это может упростить решение его злодейской задачи. Соединившись с тестовой базой, можно выполнять какие-то команды от имени сервера и вредить ОС или рабочей базе данных. Ничего лишнего в системе не должно быть, тем более что на такие таблицы/базы данных установлены достаточно высокие права даже для гостя. Итого Несмотря на то, что в качестве примера использовалась MS SQL Server, понятия прав, ролей и аутентификации есть практически во всех базах данных. Зная все правила, о которых ты только что читал, и уточнив специфику выбранной БД, можно наконец почувствовать себя в безопасности. При определении прав доступа первым делом нужно помнить следующий закон: что не разрешено, то запрещено. Лучше лишний раз запретить, чем оставить без внимания. У спеца по безопасности не должно быть друзей :). Некоторые считают, что босс должен видеть все, поскольку он босс. Это верно, если начальник хороший спец в IT и может дать гарантию, что не навредит. Если он чайник и случайно может уничтожить данные, то виноватым будешь ты, поэтому не давай права sa даже боссу. |