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

Azure专用SQL池创建数据库主密钥遇权限报错咨询

Azure Synapse 专用SQL池创建数据库主密钥权限报错解决方案

核心错误原因

你遇到的两个报错本质是两个操作误区导致的:

  1. 执行创建主密钥操作时使用的账号没有目标数据库的对应权限,且大概率未在目标业务库创建对应的数据库用户映射
  2. 授权语句指定的数据库范围错误:你需要创建的是业务用户库的数据库主密钥,而非master库的,同时Azure Synapse专用池的master库为平台托管,普通账号无权限对其进行CONTROL级别的授权操作。

分步操作指引

  • 首先使用创建专用SQL池时配置的SQL管理员账号(Azure AD管理员或实例部署时设置的SQL身份验证管理员账号)登录SQL实例,普通useradmin角色账号默认无安全配置相关的操作权限。
  • 登录后先切换到需要创建主密钥的目标业务数据库,禁止在master库执行业务加密相关操作,切库语句如下:
    USE <替换为你的专用SQL池业务数据库名称>;
  • 如果你需要给useradmin账号授予创建主密钥的权限,先在当前目标业务库下完成用户映射和权限授予,执行以下语句:
    -- 将服务器级登录名useradmin映射为当前业务库的数据库用户
    CREATE USER [useradmin] FROM LOGIN [useradmin];
    -- 为该用户授予当前业务库的CONTROL权限,注意不要指定master库
    GRANT CONTROL ON DATABASE::<替换为你的专用SQL池业务数据库名称> TO [useradmin];
    
  • 权限配置完成后,切换到useradmin账号连接,再次确认连接的是目标业务库,执行主密钥创建语句即可:
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';

注意事项

  • 禁止在master库创建业务侧使用的数据库主密钥:Azure Synapse专用SQL池的数据库主密钥作用域为单用户库,master库下创建的密钥无法被业务库的加密场景(包括外部数据源凭据、列级加密、TDE自定义密钥等)调用。
  • 不要尝试修改master库的权限配置:专用SQL池的master库为平台托管资源,即使用服务器级管理员账号登录,也无法对其授予非平台默认的权限,强行执行相关授权语句必然报错。
  • 生产环境创建主密钥时请替换为符合强密码规范的自定义密码,要求长度不低于15位,同时包含大小写字母、数字、特殊符号,禁止与登录账号密码复用。

内容的提问来源于stack exchange,提问作者L. Full

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:36:22