Поделиться через


Защита выделенного пула SQL (прежнее название — хранилище данных SQL) в Azure Synapse Analytics

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

Безопасность подключения

Безопасность подключения относится к тому, как ограничить и защитить подключения к базе данных с помощью правил брандмауэра и шифрования подключений.

Правила брандмауэра используются как логическим сервером SQL, так и его базами данных для отклонения попыток подключения с IP-адресов, которые не были явно утверждены. Чтобы разрешить подключения с общедоступного IP-адреса приложения или клиентского компьютера, необходимо сначала создать правило брандмауэра на уровне сервера с помощью портала Azure, REST API или PowerShell.

Рекомендуется ограничить диапазоны IP-адресов, разрешенные брандмауэром на уровне сервера, как можно больше. Чтобы получить доступ к выделенному пулу SQL (ранее — хранилище данных SQL) с локального компьютера, убедитесь, что брандмауэр в сети и локальном компьютере разрешает исходящее взаимодействие через TCP-порт 1433.

Выделенный пул SQL (ранее — хранилище данных SQL) использует правила брандмауэра IP-адресов уровня сервера. Правила брандмауэра для IP-адресов на уровне базы данных не поддерживаются. Дополнительные сведения см. в разделе "Правила брандмауэра базы данных SQL Azure"

Подключения к выделенному пулу SQL (ранее — хранилище данных SQL) шифруются по умолчанию. Изменение параметров подключения для отключения шифрования игнорируется.

Аутентификация

Проверка подлинности относится к тому, как вы удостоверяете свою личность при подключении к базе данных. Выделенный пул SQL (ранее — хранилище данных SQL) в настоящее время поддерживает проверку подлинности SQL Server с именем пользователя и паролем, а также идентификатором Microsoft Entra.

При создании сервера для базы данных вы указали имя входа администратора сервера с именем пользователя и паролем. Используя эти учетные данные, вы можете аутентифицироваться в любой базе данных на этом сервере в роли владельца базы данных (dbo) с помощью аутентификации SQL Server.

Однако, как рекомендуется, пользователи вашей организации должны использовать другую учетную запись для проверки подлинности. Таким образом, вы можете ограничить разрешения, предоставленные приложению, и снизить риски вредоносных действий в случае, если код приложения уязвим для атаки на внедрение SQL.

Чтобы создать пользователя, прошедшего проверку подлинности SQL Server, подключитесь к базе данных master на сервере с помощью имени входа администратора сервера и создайте новое имя входа сервера. Рекомендуется также создать пользователя в базе данных master. Создание пользователя в master позволяет пользователю выполнять вход с помощью таких средств, как SSMS, без указания имени базы данных. Он также позволяет использовать обозреватель объектов для просмотра всех баз данных на сервере.

-- Connect to master database and create a login
CREATE LOGIN ApplicationLogin WITH PASSWORD = 'Str0ng_password';
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;

Затем подключитесь к выделенному пулу SQL (ранее — хранилище данных SQL) с именем входа администратора сервера и создайте пользователя базы данных на основе созданного имени входа сервера.

-- Connect to the database and create a database user
CREATE USER ApplicationUser FOR LOGIN ApplicationLogin;

Чтобы предоставить пользователю разрешение на выполнение дополнительных операций, таких как создание учетных записей или создание новых баз данных, назначьте пользователя на роли Loginmanager и dbmanager в базе данных Master.

Дополнительные сведения об этих дополнительных ролях и проверке подлинности в базе данных SQL см. в статье "Управление базами данных и именами входа в Базе данных SQL Azure". Дополнительные сведения о подключении с помощью идентификатора Microsoft Entra см. в разделе "Подключение с помощью проверки подлинности Microsoft Entra".

Авторизация

Авторизация относится к тому, что вы можете сделать в базе данных после аутентификации и подключения. Привилегии авторизации определяются членством в ролевой роли и разрешениями. Рекомендуется предоставить пользователям минимальные привилегии. Для управления ролями можно использовать следующие хранимые процедуры:

EXEC sp_addrolemember 'db_datareader', 'ApplicationUser'; -- allows ApplicationUser to read data
EXEC sp_addrolemember 'db_datawriter', 'ApplicationUser'; -- allows ApplicationUser to write data

Учетная запись администратора сервера, с которой вы подключаетесь, является членом db_owner, которая имеет полномочия для выполнения всех действий в базе данных. Сохраните эту учетную запись для развертывания обновлений схемы и других операций управления. Используйте учетную запись ApplicationUser с более ограниченными разрешениями для подключения от приложения к базе данных с минимальными привилегиями, необходимыми для приложения.

Существуют способы дополнительного ограничения того, что пользователь может сделать в базе данных:

  • Детализированные разрешения позволяют управлять операциями, которые можно выполнять в отдельных столбцах, таблицах, представлениях, схемах, процедурах и других объектах в базе данных. Используйте детализированные разрешения, чтобы иметь большую часть управления и предоставлять минимальные необходимые разрешения.
  • Роли базы данных , отличные от db_datareader и db_datawriter, можно использовать для создания более мощных учетных записей пользователей приложений или менее мощных учетных записей управления. Встроенные фиксированные роли базы данных предлагают простой способ предоставления разрешений, но могут привести к предоставлению более обширных разрешений, чем необходимо.
  • Хранимые процедуры можно использовать для ограничения действий, которые можно предпринять в базе данных.

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

--CREATE SCHEMA Test
GRANT SELECT ON SCHEMA::Test to ApplicationUser

Управление базами данных и серверами с портала Azure или с помощью API Azure Resource Manager управляется назначениями ролей учетной записи пользователя портала. Дополнительные сведения см. в разделе Назначение ролей Azure с помощью портала Azure.

Шифрование

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

В базе данных SQL ключ шифрования базы данных защищен встроенным сертификатом сервера. Встроенный сертификат сервера является уникальным для каждого сервера. Корпорация Майкрософт автоматически меняет эти сертификаты по крайней мере каждые 90 дней. Используемый алгоритм шифрования — AES-256. Общее описание TDE см. в разделе "Прозрачное шифрование данных".

Базу данных можно зашифровать с помощью портала Azure или T-SQL.

Дальнейшие действия

Дополнительные сведения и примеры подключения к хранилищу с различными протоколами см. в статье "Подключение к выделенному пулу SQL" (ранее — хранилище данных SQL).