Невозможно получить доступ к ADLS из Synapse Analytics

Я имею;

  1. Мастер-ключ.
  2. Учетные данные для базы данных.
  3. Внешний источник данных.
  4. Формат файла.
  5. Пользователь создал управляемое удостоверение для Azure SQL Server.
  6. Разрешение участника RBAC для этого управляемого удостоверения в моей учетной записи хранения ADLS.

Когда я выполняю код для создания внешней таблицы, возникает эта ошибка:

Не удалось получить секрет учетных данных для предоставленной базы данных и учетных данных. Имя базы данных = DWShellDb, имя учетных данных = devtechnicalpractice1_AdlsManagedIdentity, Exception = System.Data.SqlClient.SqlException (0x80131904): не удалось получить или расшифровать секрет для учетных данных devtechnicalpractice1_AdlsManagedIdentity.

Это код:

CREATE DATABASE SCOPED CREDENTIAL credname
WITH 
    IDENTITY = 'exact_mi_name'
;

CREATE EXTERNAL DATA SOURCE datasourcename
WITH
  ( LOCATION = 'abfss://containername@storageaccountname.dfs.core.windows.net' ,
    CREDENTIAL = credname ,
    TYPE = HADOOP
  ) ;

CREATE EXTERNAL FILE FORMAT Header_CSV1
WITH (FORMAT_TYPE = DELIMITEDTEXT,
      FORMAT_OPTIONS(
          FIELD_TERMINATOR = ',',
          STRING_DELIMITER = '"',
          FIRST_ROW = 1, 
          USE_TYPE_DEFAULT = True)
) ;


CREATE EXTERNAL TABLE [dbo].[tablename]
( [field1] VARCHAR(250) NULL,
  [field2] VARCHAR(250) NULL,
  [field3] VARCHAR(250) NULL )
WITH
(
    LOCATION='/Countries/' ,
    DATA_SOURCE = datasourcename,
    FILE_FORMAT = Header_CSV1 ,
    REJECT_TYPE = VALUE ,
    REJECT_VALUE = 0
) ;

Я не думаю, что ошибка связана с TSQL, а связана с разрешением безопасности.

1 ответ

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

CREATE DATABASE SCOPED CREDENTIAL credname
WITH
    IDENTITY = 'exact_mi_name',
    SECRET = 'adfNSkGPaTuryRdqt9sPAnjPW8xEzM7kQIYt' // data lake key
;
Другие вопросы по тегам