Общие сведения о безопасности PL/SQL: на заметку кодеру

Стас Белков

Стас Белков

Автор статьи. Известный специалист в мире IT. Консультант по продуктам и решениям Oracle. Практикующий программист и администратор баз данных. Подробнее.

Многие разработчики PL/SQL считают, что о безопасности должны заботиться только администраторы баз данных Oracle и специалисты по безопасности. Действительно, некоторыми аспектами безопасности (например, управлением пользователями и привилегиями) должны заниматься администраторы. Но было бы серьезной ошибкой полагать, что разработчиков PL/SQL эта тема вообще не касается. Во-первых, безопасность не является проблемой, которая решается один раз; это средство достижения цели, о котором приходится помнить постоянно. Во-вторых, многие администраторы направляют свои усилия на защиты базы данных в целом, а не на программирование средств безопасности конкретного приложения.

Вероятно, вы слышали, что надежность системы определяется надежностью ее слабейшего звена. Этот принцип в равной степени применим к безопасности приложений. Каждый элемент инфраструктуры — приложение, архитектура, промежуточные программы (middleware), база данных, операционная система — вносит свой вклад в общую безопасность инфраструктуры, и сбой безопасности одного компонента создает угрозу для всей системы. Понимание структурных элементов безопасности и внедрение их в архитектуру приложения не только желательно, но и абсолютно необходимо.

Аспекты безопасности Oracle делятся на три общие категории:

  •  Находящиеся исключительно в ведении администраторов баз данных, систем и сетей.
  •  Аспекты, важные для разработчиков и проектировщиков архитектуры, не относящиеся к сфере ответственности администраторов. Одним из примеров служит выбор модели прав вызова при создании хранимого кода; как правило, решение принимается в ходе проектирования самим разработчиком, а не администратором.
  •  Аспекты, которые обычно считаются относящимися к сфере администрирования, но которые должны быть хорошо известны разработчикам и проектировщикам. К этой категории относится шифрование, безопасность уровня строк и контексты приложений.

Как возможности и средства помогут разработчикам PL/SQL и проектировщикам архитектуры приложений в их работе? Чтобы ответить на этот вопрос, следует рассмотреть каждую тему по отдельности:

  • Шифрование играет жизненно важную роль для защиты данных и активно применяется во многих ситуациях при проектировании приложений. Вы должны обладать практическими знаниями в области функциональности Oracle, относящейся к шифрованию, включая механизм прозрачного шифрования данных (TDE, Transparent Data Encryption), представленный в Oracle Database 10g Release 2, и механизм прозрачного шифрования таблиц (TTE, Transparent Table Encryption), представленный в Oracle Database 11g.
  • Безопасность уровня строк (RLS, Row Level Security). При проектировании приложения необходимо хорошо понимать архитектуру доступа и проверки полномочий для работы с данными. RLS позволяет ограничить строки, доступные для пользователя. Во многих случаях RLS упрощает понимание и реализацию приложений, а иногда даже автоматически обеспечивает соответствие готовых приложений правилам безопасности, принятым в вашей организации.
  • Контексты приложений представляют собой пары «имя/значение», определяемые в сеансе посредством выполнения специальных хранимых процедур. Контексты приложений обычно используются для управления доступом к ресурсам базы данных в соответствии с правилами, изменяющимися в зависимости от текущего пользователя.
  • Детализированный аудит FGA (Fine-Grained Auditing) предоставляет механизм для регистрации факта выдачи пользователями определенных команд и выполнения некоторых условий. FGA предоставляет в распоряжение разработчика немало полезных функций. Например, FGA фактически позволяет реализовать триггеры SELECT — пользовательские процедуры, которые должны автоматически выполняться при каждой выборке данных из таблицы.

Тема безопасности в Oracle воистину необъятна; в этой статье мы лишь в самых общих чертах рассмотрим ее аспекты, представляющие наибольший интерес для разработчиков PL/SQL. За дополнительной информацией об этих и других операциях безопасности Oracle обращайтесь к книге Oracle PL/SQL for DBAs (Arup Nanda, Steven Feuerstein, O’Reilly). Также выпущено немало других книг, которые помогут вам разобраться в тонкостях вопросов безопасности. Ресурсы по этой теме также доступны на сайте Oracle Security Technology Center.  В следующей статье мы подробно рассмотрим методы шифрования данных, доступные в PL/SQL.

 

Вас заинтересует / Intresting for you:

Встроенные методы коллекций PL...
Встроенные методы коллекций PL... 14846 просмотров sepia Tue, 29 Oct 2019, 09:54:01
Управление приложениями PL/SQL...
Управление приложениями PL/SQL... 4651 просмотров Stas Belkov Thu, 16 Jul 2020, 06:20:48
Основы языка PL/SQL: использов...
Основы языка PL/SQL: использов... 4701 просмотров Ирина Светлова Tue, 06 Feb 2018, 14:04:03
Символьные функции и аргументы...
Символьные функции и аргументы... 18587 просмотров Анатолий Wed, 23 May 2018, 18:54:01
Войдите чтобы комментировать