Этот контрольный список помогает проверить ограничение доступа к данным в организации. Контрольный список служит для периодического аудита доступа пользователей к данным, хранящимся в компоненте SQL Server Database Engine.
Доступ к экземпляру SQL Server
Эти пункты относятся к экземпляру компонента Database Engine в целом.
.gif) |
- Предоставляется ли доступ для большинства имен входа посредством групп Windows?
Совет. Настройка доступа к компоненту Database Engine с помощью групп Windows упрощает администрирование и сопровождение доступа. Дополнительные сведения об именах входа см. в разделе Участники (компонент Database Engine).
|
.gif) |
- Удалены ли лишние и устаревшие имена входа из компонента Database Engine?
Совет. Для этого может потребоваться периодически выполнять проверку вручную. Обеспечение доступа главным образом посредством групп Windows упрощает эту задачу.
|
.gif) |
- Реализован ли принцип предоставления минимальных прав?
Совет. Участникам (именам входа, пользователям и ролям) следует предоставлять разрешения только на те объекты базы данных, доступ к которым необходим для выполнения работы. Не разрешайте обычным пользователям выполнять подключение с учетной записью администратора, такой как sa. Не разрешайте веб-странице, пользовательскому приложению или пакету служб SSIS выполнять подключение с учетной записью администратора.
|
.gif) |
- Предоставлено ли выборочное разрешение VIEW DEFINITION на уровне объекта, схемы, базы данных или сервера для просмотра метаданных системы без предоставления дополнительных разрешений?
Совет. Дополнительные сведения см. в разделе Инструкция GRANT (Transact-SQL).
|
.gif) |
- Заменены ли удаленные серверы связанными серверами?
Совет. Дополнительные сведения см. в разделах Настройка удаленных серверов и Связь серверов.
|
.gif) |
- Ограничено ли делегирование, если требуется сквозная проверка подлинности на связанном сервере?
Совет. Дополнительные сведения см. в разделе sp_addlinkedsrvlogin (Transact-SQL).
|
.gif) |
- Отключены ли нерегламентированные запросы через серверы (если в них нет необходимости)?
Совет. Дополнительные сведения см. в разделе Параметр ad hoc distributed queries.
|
Управление удостоверениями пользователей
Эти пункты относятся к параметрам в каждой базе данных.
.gif) |
- Отключена ли гостевая учетная запись в каждой базе данных, если она не требуется для анонимных пользователей?
Совет. Отключите учетные записи в среде Среда SQL Server Management Studio или с помощью Transact-SQL.
|
.gif) |
- Имеют ли пользователи доступ только к необходимым базам данных?
Совет. Для этого может потребоваться периодически выполнять проверку вручную. Обеспечение доступа главным образом посредством ролей SQL Server упрощает эту задачу. Дополнительные сведения см. в разделе Роли уровня сервера.
|
.gif) |
- Предоставляется ли доступ большинству пользователей посредством ролей SQL Server?
Совет. Настройка доступа с помощью ролей сервера и ролей базы данных упрощает сопровождение доступа. Дополнительные сведения о ролях см. в разделе Роли уровня базы данных.
|
.gif) |
- Использует ли агент SQL Server учетные данные для выполнения шагов заданий, для которых требуются специальные права, вместо изменения прав учетной записи службы «SQL Server, агент»?
Совет. Дополнительные сведения см. в разделе Учетные данные (компонент Database Engine).
|
.gif) |
- Если агенту SQL Server нужно выполнить задание, для которого требуются другие учетные данные Windows, назначаются ли они учетной записи-посреднику, которая имеет только те разрешения, которые необходимы для выполнения задачи?
Совет. Дополнительные сведения см. в разделе Как создать учетную запись-посредник (среда SQL Server Management Studio).
|
.gif) |
- Инкапсулируется ли доступ к объектам базы данных в таких модулях, как хранимые процедуры, функции, триггеры и сборки?
Совет. Ограничение доступа стандартными модулями усложняет задачу выполнения произвольного кода злоумышленником. Дополнительные сведения см. в разделе Основные сведения о хранимых процедурах.
|
.gif) |
- Задан ли явным образом контекст выполнения в модулях вместо контекста по умолчанию?
Совет. Дополнительные сведения см. в разделе Использование инструкции EXECUTE AS в модулях.
|
.gif) |
- Подписаны ли модули для предотвращения несанкционированного изменения?
Совет. Дополнительные сведения см. в разделе Подписание модулей (компонент Database Engine).
|
.gif) |
- Используется ли конструкция USER WITHOUT LOGIN вместо ролей приложения?
Совет. Дополнительные сведения см. в документе SQL Server 2005 Security Best Practices — Operational and Administrative Tasks (на английском языке).
|
.gif) |
- Используется ли конструкция EXECUTE AS вместо SETUSER?
Совет. Дополнительные сведения см. в разделе EXECUTE AS и SETUSER: сравнение.
|
.gif) |
- Заменены ли роли приложения конструкцией EXECUTE AS?
Совет. По возможности используйте конструкцию EXECUTE AS … WITH NO REVERT. Для вложенных изменений используйте параметр EXECUTE AS … WITH COOKIE. Дополнительные сведения см. в разделе EXECUTE AS (Transact-SQL).
|
Доступ к объектам
Эти пункты относятся к доступу к объектам базы данных.
.gif) |
- Предоставляются ли общим ролям сервера и базы данных минимальные разрешения?
Совет. Все имена входа и пользователи являются членами общих ролей, и их нельзя удалить. Эти роли должны иметь весьма ограниченные разрешения.
|
.gif) |
- Сгруппированы ли схожие объекты базы данных в одной схеме?
Совет. Создавайте схемы в зависимости от бизнес-требований. Вместо схемы dbo используйте нестандартные схемы. Дополнительные сведения см. в разделе Схемы (компонент Database Engine).
|
.gif) |
- Применяется ли для управления безопасностью объектов базы данных задание владельцев и разрешений на уровне схемы?
Совет. Дополнительные сведения см. в разделе GRANT, предоставления разрешения на схему (Transact-SQL).
|
.gif) |
- Имеются ли уникальные владельцы для схем вместо общего владельца dbo для всех схем?
Совет. Если все схемы имеют одного владельца, то цепочки владения могут обходить необязательную проверку разрешений. Дополнительные сведения см. в разделе Цепочки владения.
|
.gif) |
- Используется ли подписание кода процедуры, если для нее требуются дополнительные права доступа?
Совет. Дополнительные сведения см. в разделе Подписание модулей (компонент Database Engine).
|
.gif) |
- Установлен ли параметр базы данных TRUSTWORTHY в значение OFF?
Совет. Если задано значение ON, то модули базы данных (такие как определяемые пользователем функции или хранимые процедуры), использующие контекст олицетворения, могут обращаться к ресурсам, расположенным вне базы данных. Используйте инструкцию ALTER DATABASE для изменения параметра TRUSTWORTHY. Дополнительные сведения см. в разделе Свойство базы данных TRUSTWORTHY.
|
.gif) |
- Принимаются ли в модулях меры по предотвращению внедрения кода SQL?
Совет. Дополнительные сведения см. в разделе Атака SQL Injection.
|
.gif) |
- Если разрешается нерегламентированный доступ к базе данных (вместо инкапсуляции доступа в модулях), принимаются ли в приложениях меры по предотвращению внедрения кода SQL?
Совет. Дополнительные сведения см. по следующим ссылкам.
|
См. также
Основные понятия
Другие ресурсы