gpt4 book ai didi

azure - 找不到 CREDENTIAL '' ,因为它不存在或您没有权限

转载 作者:行者123 更新时间:2023-12-02 23:06:01 24 4
gpt4 key购买 nike

我使用此处指定的步骤创建了外部表:https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/develop-storage-files-storage-access-control?tabs=shared-access-signature .

在 Synapse 工作区中,我能够访问外部表数据(因为它使用我的 AD 凭据)。但是,它无法在外部平台(本例中为 redash)上运行。为了从 redash 访问数据,我创建了一个 db 用户,这就是我认为我缺少以某种方式授予该用户访问数据库范围凭据的步骤的地方。

我创建具有所需信用的外部表的步骤:

  1. 创建数据库范围凭据以访问 Blob 存储内的数据
CREATE DATABASE SCOPED CREDENTIAL datalake_credentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'SAS TOKEN';
  • 使用上一步中创建的凭据创建外部数据源
  • CREATE EXTERNAL DATA SOURCE datalake_raw_marketing
    WITH ( LOCATION = 'https://mydatalake.blob.core.windows.net/raw/marketing'
    , CREDENTIAL= [datalake_credentials]
    );
  • 最后使用数据源创建外部表
  • CREATE EXTERNAL TABLE [dbo].[Customers]
    (
    [Id] [varchar](36),
    [FirstName] [varchar](100),
    [Email] [varchar](100),
    [Date] [varchar](100),
    [Group] [varchar](100)
    )
    WITH (DATA_SOURCE = [datalake_raw_marketing], LOCATION = N'sub_dir/customer_list_*.csv',FILE_FORMAT = [QuotedCsvWithHeaderFormat])
    GO

    使用此页面上的信息 https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/develop-storage-files-storage-access-control?tabs=shared-access-signature我尝试使用以下方法“授予使用凭据的权限”:

    GRANT REFERENCES ON CREDENTIAL::[datalake_credentials] TO [redash];

    但它总是会导致:

    Cannot find the CREDENTIAL 'datalake_credentials', because it does not exist or you do not have permission.

    最佳答案

    您的凭据是数据库范围的,因此您需要将其包含在声明中:

    GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[{credential_name}] TO [{user}];

    关于azure - 找不到 CREDENTIAL '<db_scoped_creds>' ,因为它不存在或您没有权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68554261/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com