You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2022中CETAS操作权限错误排查求助

排查SQL Server 2022 CETAS权限问题

一、SAS方式报错:CREATE/WRITE权限检查失败(HRESULT=0x80070005)

针对权限拒绝错误,按以下步骤排查:

  1. 修正SAS Token格式
    创建数据库范围凭据时,SAS Token的SECRET不能包含开头的?,需从sv=开始。你的代码中SECRET以?开头,会导致验证失败,修正后示例:

    CREATE DATABASE SCOPED CREDENTIAL [BlobSAS]
    WITH
        IDENTITY = 'SHARED ACCESS SIGNATURE',
        SECRET   = 'sv=2021-06-08&ss=bfqt&srt=c<<>>'; -- 去掉开头的?
    
  2. 验证SAS权限与范围

    • 确认SAS的sp参数包含c(创建)和w(写入)权限,完整权限应为rwdlac;
    • 检查SAS的资源范围是否覆盖目标容器dummy,如果是容器级SAS,需确保生成时选择了正确的容器;
    • 核对SAS的有效期,确认当前时间在SAS的起始和结束时间范围内。
  3. 检查存储账户配置

    • 确认dummy容器已在存储账户中创建,CETAS不会自动创建容器;
    • 如果存储账户启用了防火墙,需将SQL Server所在服务器的IP添加到存储账户的允许列表中;
    • 注意Blob存储路径大小写敏感,确认LOCATION中的容器名、路径/Test拼写与实际完全一致。

二、存储账户密钥方式报错:找不到凭据BlobKey(Msg 15151)

针对这个问题,按以下步骤排查:

  1. 确认凭据的数据库归属
    数据库范围凭据是数据库级对象,需确保BlobKey是在执行CETAS的当前数据库中创建的,而非其他数据库。执行以下语句验证:

    -- 在当前数据库执行
    SELECT name FROM sys.database_scoped_credentials WHERE name = 'BlobKey';
    

    如果结果为空,需重新在当前数据库创建凭据。

  2. 核对凭据参数正确性

    • IDENTITY必须是存储账户的纯名称(不含.blob.core.windows.net后缀),示例:
      CREATE DATABASE SCOPED CREDENTIAL [BlobKey] WITH
          IDENTITY = 'mystorageaccount', -- 替换为你的存储账户名
          SECRET = 'your-storage-account-primary-key';
      
    • 确认SECRET是存储账户的主密钥或辅助密钥,无多余空格或字符错误。
  3. 验证权限与名称拼写

    • 即使是sysadmin账户,也需确保对BlobKey凭据有CONTROL权限,可执行以下语句授权:
      GRANT CONTROL ON DATABASE SCOPED CREDENTIAL::BlobKey TO [YourAdminUser];
      
    • 检查外部数据源创建语句中,CREDENTIAL = [BlobKey]的名称拼写是否完全正确(注意数据库 collation是否区分大小写)。

内容的提问来源于stack exchange,提问作者Nandan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:35:10