Невозможно получить доступ к ADLS из Synapse Analytics
Я имею;
- Мастер-ключ.
- Учетные данные для базы данных.
- Внешний источник данных.
- Формат файла.
- Пользователь создал управляемое удостоверение для Azure SQL Server.
- Разрешение участника 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
;