Смекни!
smekni.com

работа (стр. 4 из 5)

Для настройки аудита необходимо его создать и указать место записи событий. Аудит может храниться в журнале безопасности Windows, в журнале приложений Windows или в любом файле. Вы присваиваете аудиту имя и настраиваете его характеристики, в частности, путь к файлу аудита и его максимальный размер. Также можно настроить аудит так, чтобы в случае сбоя проверки работа SQL Server завершалась. Если события аудита нужно записывать в несколько журналов, создается несколько аудитов.

Следующий этап — создание спецификаций аудита. В спецификации аудита сервера собирается информация об экземпляре SQL Server; в нее включаются объекты, относящиеся к серверу: данные учетных записей, членство в серверных ролях. Там же имеется информация о базе данных, контролируемая в основной базе данных, например сведения о правах доступа к базе. При создании спецификации аудита вы указываете, в какой аудит будут поступать наблюдаемые события. Вы можете создать несколько аудитов сервера и несколько спецификаций аудита, но аудит может иметь только одну активную спецификацию в каждый конкретный момент времени.

Также можно создать спецификации аудита базы данных: они будут использоваться для отслеживания событий по отдельной базе данных. В аудит можно добавить несколько спецификаций аудита баз данных, но в каждом аудите сервера активной может быть только одна спецификация аудита баз данных.

События подсистемы аудита SQL Server, используемые в спецификациях аудита сервера, объединяются в коллекции связанных событий. Они предоставляются в виде групп действий аудита. Если такую группу добавить в спецификацию аудита, можно будет отслеживать события, включенные в группу. К примеру, существует группа действий аудита DBCC_GROUP, предоставляющая доступ к командам DBCC. Отдельно же команды DBCC включаться в аудит не могут.

Всего существует 35 групп действий аудита сервера, причем некоторые из них тесно связаны друг с другом. Например, группы SUCCESSFUL_LOGIN_GROUP, FAILED_LOGIN_GROUP и LOGOUT_GROUP. Также есть тип действий аудита AUDIT_ CHANGE_GROUP, который можно использовать для проверки самого процесса аудита.

В спецификациях аудита баз данных можно также указывать группы событий аудита, собранные в группы действий аудита на уровне баз данных. Кроме групп действий аудита, спецификации аудита баз данных могут включать в себя отдельные события аудита, позволяющие проверять инструкции, отвечающие за работу с данными. Эти события можно настроить таким образом, чтобы отслеживать всю базу данных или только определенные объекты. Действие SELECT, в частности, может использоваться для проверки запросов SELECT, обращенных как к отдельной таблице, так и ко всей схеме в целом. Кроме того, события такого рода можно настроить так, чтобы отслеживать действия по отдельным пользователям или ролям, например db_writers.

Скажем, действие SELECT можно использовать для проверки запросов SELECT, обращенных к отдельной таблице, источником которых является пользователь Mary, или роль FINANCE_DEPT, или роль базы данных Public. Нельзя не отметить, что все это предоставляет широчайшие возможности контроля и дает большой запас гибкости при настройке аудита.

Отчеты о зависимостях

В модуле составления отчетов о зависимостях появилось новое представление каталогов и новые системные функции. Если использовать sys.sql_expression_dependencies, sys.dm_sql_referencing_entities и sys.dm_sql_referenced_entities, можно создавать отчеты по зависимостям между серверами, зависимостям между базами данных и SQL-зависимостями в пределах базы данных как для привязанных к схеме объектов, так и для непривязанных.

Роли уровня базы данных

Для удобства управления разрешениями в базах данных SQL Server предоставляет несколько ролей, которые являются участниками безопасности, группирующими других участников. Они подобны группам в операционной системе Microsoft Windows. Разрешения ролей уровня базы данных распространяются на всю базу данных. [6]

В SQL Server существует два типа ролей уровня базы данных: предопределенные роли базы данных, стандартные для базы данных, и гибкие роли базы данных, которые может создать пользователь.

Предопределенные роли базы данных задаются на уровне базы данных и предусмотрены в каждой базе данных. Члены ролей базы данных db_owner и db_securityadmin могут управлять членством в предопределенных ролях базы данных. Но только члены роли базы данных db_owner могут добавлять членов в предопределенную роль базы данных db_owner. Кроме того, в базе данных msdb имеются специальные предопределенные роли базы данных.

В роли уровня базы данных можно добавить любую учетную запись базы данных и другие роли SQL Server. Каждый член предопределенной роли базы данных может добавлять другие имена входа к той же роли.

В следующей таблице представлены предопределенные роли уровня базы данных и их возможности. Эти роли существуют во всех базах данных.

Имя роли уровня базы данных Описание
db_owner Члены предопределенной роли базы данных db_owner могут выполнять все действия по настройке и обслуживанию базы данных, а также удалять базу данных.
db_securityadmin Элементы предопределенной роли базы данных db_securityadmin могут изменять членство в роли и управлять разрешениями. Добавление участников к этой роли может привести к непреднамеренному повышению прав доступа.
db_accessadmin Члены предопределенной роли базы данных db_accessadmin могут добавлять или удалять права удаленного доступа к базе данных для имен входа и групп Windows, а также имен входа SQL Server.
db_backupoperator Члены предопределенной роли базы данных db_backupoperator могут создавать резервные копии базы данных.
db_ddladmin Члены предопределенной роли базы данных db_ddladmin могут выполнять любые команды языка определения данных (DDL) в базе данных.
db_datawriter Члены предопределенной роли базы данных db_datawriter могут добавлять, удалять или изменять данные во всех пользовательских таблицах.
db_datareader Элементы фиксированной роли базы данных db_datareader могут считывать все данные из всех пользовательских таблиц.
db_denydatawriter Члены предопределенной роли базы данных db_denydatawriter не могут добавлять, изменять или удалять данные в пользовательских таблицах базы данных.
db_denydatareader Члены предопределенной роли базы данных db_denydatareader не могут считывать данные из пользовательских таблиц базы данных.

Роли базы данных msdb

База данных msdb содержит специальные роли, показанные в следующей таблице.

Имя роли базы данных msdb Описание
db_ssisadmin db_ssisoperator db_ssisltduser Члены этих ролей базы данных могут администрировать и использовать службы SSIS. Экземпляры SQL Server, обновленные с предыдущей версии, могут содержать более старую версию роли, имя которой присвоено с помощью служб DTS, а не служб SSIS. Дополнительные сведения см. в разделе Использование ролей служб Integration Services.
dc_admin dc_operator dc_proxy Члены этих ролей базы данных могут администрировать и использовать сборщик данных. Дополнительные сведения см. в разделе Безопасность сборщика данных.
PolicyAdministratorRole Члены роли базы данных db_ PolicyAdministratorRole могут выполнять все действия по настройке и обслуживанию политик и условий средства «Управление на основе политики». Дополнительные сведения см. в разделе Администрирование серверов с помощью управления на основе политик.
ServerGroupAdministratorRole ServerGroupReaderRole Члены этих ролей базы данных могут администрировать и использовать зарегистрированные группы серверов.

Работа с ролями уровня базы данных

В следующей таблице описаны команды, представления и функции, предназначенные для работы с ролями уровня базы данных.

Функция Тип данных Описание
sp_helpdbfixedrole (Transact-SQL) Метаданные Возвращает список всех предопределенных ролей базы данных.
sp_dbfixedrolepermission (Transact-SQL) Метаданные Отображает разрешения предопределенной роли базы данных.
sp_helprole (Transact-SQL) Метаданные Возвращает информацию о ролях, относящихся к текущей базе данных.
sp_helprolemember (Transact-SQL) Метаданные Возвращает сведения о членах роли в текущей базе данных.
sys.database_role_members (Transact-SQL) Метаданные Возвращает одну строку для каждого члена каждой роли базы данных.
IS_MEMBER (Transact-SQL) Метаданные Указывает, является ли текущий пользователь членом указанной группы Microsoft Windows или роли базы данных Microsoft SQL Server.
CREATE ROLE (Transact-SQL) Команда Создает новую роль базы данных в текущей базе данных.
ALTER ROLE (Transact-SQL) Команда Изменяет имя роли базы данных.
DROP ROLE (Transact-SQL) Команда Удаляет роль из базы данных.
sp_addrole (Transact-SQL) Команда Создает новую роль базы данных в текущей базе данных.
sp_droprole (Transact-SQL) Команда Удаляет роль базы данных из текущей базы данных.
Хранимая процедура sp_addrolemember (Transact-SQL) Команда Добавляет пользователя базы данных, роль базы данных, имя входа Windows или группу Windows к роли текущей базы данных.
sp_droprolemember (Transact-SQL) Команда Удаляет учетную запись безопасности из роли SQL Server в текущей базе данных.