Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Azure Synapse Analytics базы данных и таблицы Spark совместно используются с бессерверным пулом SQL. Базы данных Lake, таблицы в формате Parquet и CSV, созданные с помощью Spark, автоматически доступны в бессерверном пуле SQL. Эта функция позволяет использовать бессерверный пул SQL для изучения и запроса данных, подготовленных с помощью пулов Spark. На приведенной ниже схеме вы можете просмотреть общие сведения об архитектуре высокого уровня, чтобы использовать эту функцию. Во-первых, Конвейеры Azure Synapse перемещают данные из локального хранилища (или другого) в Azure Data Lake Storage. Теперь Spark может обогатить данные и создать базы данных и таблицы, которые синхронизируются с бессерверным Synapse SQL. Позже пользователь может выполнять произвольные запросы на основе обогащенных данных или, например, передавать их в Power BI.
Полный доступ администратора (sysadmin)
После синхронизации этих баз данных и таблиц из Spark в бессерверный пул SQL эти внешние таблицы в бессерверном пуле SQL можно использовать для доступа к тем же данным. Однако объекты в бессерверном пуле SQL доступны только для чтения из-за обеспечения согласованности с объектами пулов Spark. Ограничение позволяет получить доступ к этим объектам в бессерверном пуле SQL только пользователям с ролью SQL Synapse Administrator или Synapse Administrator. Если пользователь, отличный от администратора, пытается выполнить запрос в синхронизированной базе данных или таблице, они получат такие ошибки:
External table '<table>' is not accessible because content of directory cannot be listed. несмотря на то, что у них есть доступ к данным в базовых учетных записях хранения.
Так как синхронизированные базы данных в бессерверном пуле SQL доступны только для чтения, их нельзя изменить. Создание пользователя или предоставление других разрешений завершится ошибкой при попытке. Для чтения синхронизированных баз данных необходимо иметь привилегированные разрешения на уровне сервера (например, sysadmin). Это ограничение также присутствует во внешних таблицах в бессерверном пуле SQL при использовании Azure Synapse Link для Dataverse и озерных баз данных.
Доступ без администратора к синхронизированным базам данных
Пользователь, который должен считывать данные и создавать отчеты, обычно не имеет полного доступа администратора (sysadmin). Обычно этот пользователь является аналитиком данных, который просто должен читать и анализировать данные с помощью существующих таблиц. Им не нужно создавать новые объекты.
Пользователь с минимальным разрешением должен иметь возможность:
- Подключение к базе данных, реплицируемой из Spark
- Выберите данные через внешние таблицы и получите доступ к базовым данным ADLS.
После выполнения приведенного ниже скрипта кода пользователи, не являющиеся администраторами, смогут иметь разрешения на уровне сервера для подключения к любой базе данных. Кроме того, пользователи смогут просматривать данные со всех объектов уровня схемы, таких как таблицы или представления. Безопасность доступа к данным можно управлять на уровне хранилища.
-- Creating Azure AD login (same can be achieved for Azure AD app)
CREATE LOGIN [login@contoso.com] FROM EXTERNAL PROVIDER;
go;
GRANT CONNECT ANY DATABASE to [login@contoso.com];
GRANT SELECT ALL USER SECURABLES to [login@contoso.com];
GO;
Примечание.
Эти инструкции должны выполняться в базе данных master, так как это все разрешения на уровне сервера.
После создания имени входа и предоставления разрешений пользователи могут выполнять запросы поверх синхронизированных внешних таблиц. Эту меру можно также применить к группам безопасности Microsoft Entra.
Более безопасное управление объектами можно с помощью определенных схем и блокировки доступа к определенной схеме. Для обходного решения требуется дополнительное DDL. В этом сценарии можно создать новую бессерверную базу данных, схемы и представления, указывающие на данные таблиц Spark в ADLS.
Доступ к данным в учетной записи хранения можно управлять с помощью ACL или стандартных ролей владельца, читателя или участника данных хранилища для групп и пользователей Microsoft Entra. Для служебных принципалов (приложения Microsoft Entra) убедитесь, что используется настройка ACL (списки управления доступом).
Примечание.
- Если вы хотите запретить использование OPENROWSET для данных, вы можете использовать
DENY ADMINISTER BULK OPERATIONS to [login@contoso.com];Для получения дополнительной информации посетите права сервера DENY. - Если вы хотите запретить использование определенных схем, воспользуйтесь
DENY SELECT ON SCHEMA::[schema_name] TO [login@contoso.com];. Для получения дополнительной информации посетите раздел DENY Schema Permissions.
Дальнейшие действия
Дополнительные сведения см. в разделе "Проверка подлинности SQL".