Вы можете отправлять запросы в три основных системных ракурса, связанных с данными аудита и конфигурацией функцией аудита в SAP HANA. Эти ракурсы используются с самыми разными целями. В ракурсе действий на аудит можно просмотреть список всех действий, по которым может проводиться аудит в системе SAP HANA.
Как мы уже говорили выше, по умолчанию в системе SAP HANA аудит отключён. Кроме того, в системе нет готовых пользовательских политик аудита. Вы можете определить политики аудита, чтобы отслеживать специфичные события на основе указанных условий. Политики аудита определяются администратором аудита в зависимости от требований организации. В идеале компания должна записывать каждое событие в системе SAP HANA. Однако запись всех событий в базе данных с технологией in-memory — весьма затратное предприятие как с точки зрения финансов, так и с точки зрения архитектуры. Поэтому необходимо сконфигурировать конкретные политики аудита для записи только тех событий, которые являются критичными для обеспечения безопасности и стабильной работы системы.
По умолчанию функции аудита в SAP HANA не активированы, а системы не настроены для фиксации специфичных событий в SAP HANA. В SAP HANA реализовано несколько интерфейсов для активации и настройки функций аудита. Наиболее широко используются интерфейсы в пульте управления SAP HANA и менеджере безопасности инструментальных средств SAP HANA для веб-разработки. Однако настроить политики аудита также можно с помощью SQL-операторов. Рассмотрим каждый из этих трёх инструментов подробнее.
Внедрение модели обеспечения безопасности — это лишь начало пути. Вы также должны настроить правила и отслеживать изменения в системе SAP HANA. В этой главе рассматривается механизм внутреннего аудита SAP HANA для регистрации и отслеживания изменений по имени пользователя, адресу клиента и другим атрибутам.
С течением времени в ABAP/4 появляется все больше полезных конструкций и операторов. Одним из полезных операторов является оператор REDUCE, который может быть использован для вычисления сумм и подытогов во внутренних таблицах. В этой статье я хотел бы подчеркнуть одну тонкость, связанную с ним, которая позволит избежать неточностей при работе с этим оператором и сэкономить время на возможную отладку.
Как мы уже говорили, перенос модели безопасности между системами позволяет обеспечить согласованность при реализации модели безопасности в общем ландшафте SAP HANA. Чтобы эффективно использовать систему переноса в SAP HANA и достичь этой цели, необходимо определить в модели безопасности роли на базе репозитория. Если в основе модели безопасности лежат стандартные роли, созданные с помощью SQL-операторов, перенос такой модели между экземплярами SAP HANA будет невозможен.
Единицы поставки играют важную роль в управлении жизненным циклом пакетов. Перед экспортом контента в файл или переносом контента разработки из одной системы SAP HANA в другую необходимо сначала присвоить пакет или иерархию пакетов единице поставки. Единица поставки должна содержать пакеты и артефакты разработки, связанные друг с другом. Например, веб-приложение, разработанное в модуле XS, и связанную иерархию пакетов можно присвоить одной единице поставки. Использование единицы поставки позволяет переносить контент организованно и с сохранением непротиворечивости.
Внедрение модели обеспечения безопасности — это лишь начало пути. Эта глава посвящена созданию процессов и процедур для управления будущими изменениями и для распространения этих изменений в других средах.
Ключевое слово REDUCE имеет очень широкие возможности в ABAP и иногда может заменить метод с одним оператором. Поэтому его корректное использование вызывает трудности, и весь вопрос сводится к тому, как и где эффективно реализовать потенциал этого ключевого слова. Цель REDUCE — сократить внутреннюю таблицу до отдельной переменной (например, для суммирования или подсчёта), что уже говорит нам о том, что REDUCE — не обычный оператор. Сложность REDUCE выходит за рамки обычных свойств оператора, о которых мы говорим в данном разделе.
Регулярные выражения часто используются для описания проверок и поддерживаются несколькими языками программирования и другими механизмами обработки правил. Ввиду того, что регулярные выражения широко используются, их можно передавать между модулями и многократно использовать без каких-либо проблем. Однако регулярные выражения даже при условии соблюдения правил их собственного синтаксиса часто сложно читать в программном коде. Поговорим о простых регулярных выражениях и основных проверках, а затем перейдём к более сложным регулярным выражениям.
Логические значения относятся к наиболее базовым компонентам языка программирования, поскольку представляют простое значение с двумя состояниями. Многие условия на основе такой логики используются для принятия решений о выполнении кода. Даже если вам кажется, что с этими значениями всем всё понятно, важно обратить внимание на несколько деталей. Поговорим о них подробнее.
В предыдущем разделе мы рассмотрели обработку значений констант в контексте чистого кода. Также к значениям констант в программном коде относятся строки, конструируемые в самом исходном коде. Существуют два типа строк: константа (определяет специфичную ситуацию в регистраторе) и константа, которая конструируется. Сейчас поговорим о строковых литералах.
Константа похожа на переменную, но без возможности изменения. Константа содержит значение, на неё можно ссылаться несколько раз, но она никогда не изменяется. Существует несколько причин для использования констант в разных позициях с несложным потреблением. В следующих разделах мы покажем, как обрабатывать константы для сохранения чистоты кода.
Переменные составляют большую долю любого программного кода. Являясь одним из основных элементов кода, переменные часто используются для хранения промежуточного состояния. Иногда разработчик должен их использовать. В этой главе мы хотим показать, что переменные следует использовать осмысленно. В некоторых случаях здесь действует принцип «чем больше, тем лучше», и дополнительные переменные могут сделать код более понятным. В этой главе показано, как объявление переменных влияет на ваш код и помогает сделать его лучше.