Управление разрешениями HDFS для SQL Server 2019 Кластеры больших данных

Область применения: SQL Server 2019 (15.x)

Важно!

Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.

HDFS как файловая система подобна файловым системам на базе Linux, в которых в качестве модели разрешений для файлов используется POSIX. Помимо традиционной модели разрешений POSIX, HDFS также поддерживает списки управления доступом POSIX (ACL). Дополнительные сведения см. в статье Apache Hadoop об ACL.

В следующих разделах приведены примеры использования Azure Data CLI (azdata) для управления разрешениями HDFS для файлов и каталогов.

Необходимые компоненты

Оболочка HDFS

Функция оболочки hdfs в Azure Data CLI (azdata) позволяет выдавать команды непосредственно в оболочке для управления разрешениями HDFS для файлов и каталогов. Базовый механизм использует вызовы WebHDFS для выдачи команд.

Следующая команда открывает оболочку.

azdata bdc hdfs shell

Чтобы вызвать справку по оболочке hdfs и понять, как выдавать команды, выполните в запущенной оболочке следующую команду.

[hdfs] ?

В следующем примере показано, как создать каталог, получить список каталогов, изменить разрешения для каталога, а также предоставить пользователю с именем bob доступ на чтение, запись и выполнение в каталоге sales.

[hdfs] mkdir sales
[hdfs] ls
rwxr-xr-x  hdfs bdcadmins        0 Oct 09 18:02 system/
rwxrwxr-x admin bdcadmins        0 Oct 10 16:47 sales/
--xrwxrwxrwx  hdfs bdcadmins        0 Oct 09 18:03 tmp/
rwxrwxrwx  hdfs bdcadmins        0 Oct 09 17:59 user/

[hdfs] acl modify  '/sales/' 'user:bob:rwx'
acl modify: Change completed.
[hdfs] acl status  '/sales/'
{
  `AclStatus`: {
    `entries`: [
      `user:bob:rwx`,
      `group::r-x`
    ],
    `group`: `bdcadmins`,
    `owner`: `admin`,
    `permission`: `775`,
    `stickyBit`: false
  }
}

Создание каталога в HDFS с помощью Azure Data CLI (azdata)

В следующем примере показано создание каталога с именем data по пути /sales.

azdata bdc hdfs mkdir --path '/sales/data'

Изменение владельца каталога или файла

В следующем примере показано, как изменить пользователя-владельца каталога data в HDFS и сделать владельцами пользователя alice и группу salesgroup. Чтобы изменить владельца, необходимо быть владельцем.

azdata bdc hdfs chown --owner alice --group 'salesgroup' --path '/sales/data'

Изменение разрешений для файла или каталога с помощью chmod

Используйте chmod, чтобы изменить разрешения для файлов и каталогов (для владельца, группы-владельца и других). Дополнительные сведения см. в статье об изменении разрешений в файловой системе Linux. В HDFS используется тот же шаблон. Например:

azdata bdc hdfs chmod --permission 750 --path /sales/data
azdata bdc hdfs chmod --permission 775 --path /sales/data/file.txt

Установка бита закрепления в каталогах

Установка бита закрепления в каталогах помогает предотвратить непреднамеренное удаление или перемещение файлов. Бит закрепления разрешает удалять или перемещать файл только суперпользователю, владельцу каталога или владельцу файла. Эта настройка не затрагивает сами файлы. В приведенном ниже примере задается бит закрепления для каталога users путем добавления к разрешениям префикса 1.

azdata bdc hdfs chmod --path /sales/users --permission 1750

Настройка списков управления доступом для файлов и каталогов

Чтобы задать списки управления доступом для файлов и каталогов HDFS, используйте команды Azure Data CLI (azdata).

В следующем примере показано, как настроить списки управления доступом для каталога и предоставить пользователю с именем tom доступ на чтение, запись и выполнение в каталоге data.

Примечание.

При использовании команды set убедитесь, что вы предоставляете полную спецификацию ACL, включая спецификацию ACL для пользователя-владельца, группы-владельца и других.

azdata bdc hdfs acl set --path '/sales' --aclspec  'user::rw-,user:tom:rwx,group::rw-,other::rw-'

ACL по умолчанию для каталогов

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

Ниже приведен пример установки ACL по умолчанию с помощью azdata.

azdata bdc hdfs acl set --path '/sale' --aclspec  'user::rw-,user:tom:rwx,group::rw-,other::rw-,default:group::rw-,default:user::rw-,default:other::rw-'