Безопасность SQL Server является важным аспектом управления базами данных. Она включает защиту конфиденциальных данных, предотвращение несанкционированного доступа и обеспечение целостности базы данных. В этой статье мы рассмотрим некоторые ключевые концепции и лучшие практики, связанные с безопасностью SQL Server.
Вопрос 1: Как восстановить доступ к экземпляру SQL Server?
В отличие от распространенного мнения, потеря доступа к экземпляру SQL Server не обязательно требует взлома реестра. Существуют альтернативные варианты:
- Использовать выделенное административное подключение (DAC), если оно настроено.
- Использовать группу BUILTIN\Administrators.
- Изменить значения реестра.
Вопрос 2: Понимание разрешений с помощью функции fn_my_permissions
Функция fn_my_permissions в SQL Server отображает разрешения, предоставленные для различных объектов. Эти объекты включают:
- Роли приложений
- Сборки
- Асимметричные ключи
- Сертификаты
- Контракты
- Базы данных
- Конечные точки
- Полнотекстовые каталоги
- Логины
- Типы сообщений
- Объекты
- Привязки удаленных служб
- Роли
- Маршруты
- Схемы
- Сервер
- Службы
- Симметричные ключи
- Типы
- Коллекции схем XML
Вопрос 3: Управление функциями с помощью инструмента Surface Area Configuration
Инструмент Surface Area Configuration в SQL Server позволяет управлять различными функциями. Некоторые из этих функций включают:
- Ad-hoc удаленные запросы
- Common language runtime
- Выделенное административное подключение
- Почта базы данных
- Native XML Web Services
- OLE Automation
- Service Broker
- SQL Mail
- Web Assistant
- xp_cmdshell
Вопрос 4: Аудит активности входа в систему
Для аудита активности входа в систему в SQL Server у вас есть несколько вариантов:
- Создать пользовательское решение в вашем приложении для регистрации всех входов в централизованную таблицу.
- Включить аудит входа на уровне экземпляра в Management Studio.
- Использовать Profiler для записи входов в экземпляр.
- Воспользоваться сторонним продуктом.
Вопрос 5: Понимание SQL-инъекций
SQL-инъекция – это уязвимость безопасности, при которой злонамеренные SQL-команды передаются в SQL Server в неожиданном формате. Это может привести к краже данных, удалению, повреждению или несанкционированному доступу. Предотвращение SQL-инъекций крайне важно для поддержания безопасности и целостности вашей базы данных.
Вопрос 6: Учетная запись гостевого пользователя
Учетная запись гостевого пользователя создается по умолчанию во всех базах данных и используется, когда явные разрешения не предоставлены для доступа к объекту. Она не прямо связана с каким-либо логином, но может использоваться любым логином. В зависимости от ваших потребностей в безопасности может иметь смысл удалить учетную запись гостевого пользователя во всех базах данных, кроме Master и TempDB.
Вопрос 7: Резервное копирование сертификатов SQL Server 2005
В отличие от распространенного мнения, сертификаты SQL Server 2005 могут быть скопированы с помощью команды BACKUP CERTIFICATE, в дополнение к резервному копированию базы данных.
Вопрос 8: Управление стандартными логинами с помощью функции LOGINPROPERTY
Функция LOGINPROPERTY в SQL Server 2005 позволяет управлять стандартными логинами. Некоторые из настроек, которые можно управлять, включают дату установки пароля, заблокирован ли логин, истекший пароль, необходимость изменения пароля при следующем входе, количество последовательных неудачных попыток входа в систему, время последней неудачной попытки входа в систему, время, прошедшее с применения политики паролей к логину и хэш пароля.
Вопрос 9: Скрытие экземпляров SQL Server
Чтобы скрыть экземпляр SQL Server, вы можете внести изменения в SQL Server Configuration Manager. Установив параметр “Скрыть экземпляр” в “Да” для нужного экземпляра, вы можете предотвратить отображение имени экземпляра. Для вступления изменений в силу требуется перезапуск экземпляра SQL Server.
Вопрос 10: Аудит событий DDL
Profiler – не единственный инструмент, который может аудитировать и идентифицировать события DDL в SQL Server 2005. Триггеры DDL были введены для аудита событий CREATE, ALTER и DROP для реляционных и безопасностных объектов.
Вопрос 11: Плюсы и минусы группы BUILTIN\Administrators
Группа BUILTIN\Administrators в SQL Server имеет свои плюсы и минусы:
- Плюсы: Любой логин Windows в этой группе по умолчанию является системным администратором SQL Server, что позволяет легко управлять как с точки зрения Windows, так и с точки зрения SQL Server.
- Минусы: Любой логин Windows по умолчанию является системным администратором