如何在Microsoft Fabric DW中创建DDL用户及数据加载专用用户?
在Microsoft Fabric DW中创建DDL用户及服务主体连接方案
一、创建DDL用户
要创建拥有DDL权限的用户,按以下操作执行:
- 确保你具备Fabric工作区管理员或Fabric DW管理员权限。
- 用有权限的账号通过Fabric门户的SQL查询编辑器,或支持Fabric的SQL客户端连接到目标数据仓库。
- 执行SQL语句创建Azure AD用户/组:
CREATE USER [目标用户名/组名] FROM EXTERNAL PROVIDER; - 分配DDL权限,可直接赋予内置角色:
也可按需精细授权(以创建、修改、删除表为例):ALTER ROLE db_ddladmin ADD MEMBER [目标用户名/组名];GRANT CREATE TABLE, ALTER, DROP ON SCHEMA::[目标架构名] TO [目标用户名/组名];
二、用服务主体实现无SQL身份验证的程序化数据加载
完全可以通过服务主体解决这个需求,操作步骤如下:
- 在Azure AD中注册服务主体,保存好客户端ID、客户端密钥(或证书)和租户ID。
- 进入Fabric工作区,将该服务主体添加为工作区成员,分配
Data Warehouse Contributor或Contributor角色(确保拥有数据加载及必要DDL权限)。 - 使用服务主体身份连接Fabric DW:
- 工具端:在SQL客户端/ETL工具中选择「Azure AD服务主体」认证方式,填入租户ID、客户端ID和客户端密钥即可连接。
- 代码端(以Python pyodbc为例):
import pyodbc conn_str = ( "Driver={ODBC Driver 18 for SQL Server};" "Server=tcp:<Fabric DW服务器地址>.database.windows.net,1433;" "Database=<Fabric DW名称>;" "Authentication=ActiveDirectoryServicePrincipal;" "UID=<服务主体客户端ID>;" "PWD=<服务主体客户端密钥>;" ) conn = pyodbc.connect(conn_str)
- 给服务主体分配仓库内权限:
连接成功后执行以下SQL,完成用户创建和权限赋予:CREATE USER [服务主体名称] FROM EXTERNAL PROVIDER; -- 同时赋予DDL和数据写入权限 ALTER ROLE db_ddladmin ADD MEMBER [服务主体名称]; ALTER ROLE db_datawriter ADD MEMBER [服务主体名称];
内容的提问来源于stack exchange,提问作者Fjurg
相关产品推荐
相关产品推荐

