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

能否用SSMS在Power BI Datamart创建表?权限报错求助

问题解答:Power BI Datamart通过SSMS创建表的权限问题

核心结论

可以通过SQL Server Management Studio(SSMS)连接Power BI Datamart(本质是Azure SQL数据库实例)并创建表,但必须配置正确的权限。

错误原因分析

  1. CREATE TABLE权限拒绝:当前登录用户没有CREATE TABLE权限,也未加入拥有该权限的数据库角色(如db_ddladmin、db_owner)。
  2. ALTER AUTHORIZATION操作失败:修改数据库所有者需要服务器级别的ALTER ANY DATABASE权限,普通用户无此权限,因此该命令无法执行。

解决方案

1. 使用高权限账号登录SSMS

需使用拥有以下权限的账号登录:

  • Power BI工作区管理员(即创建该Datamart的账号)
  • 或拥有该Datamart数据库db_owner角色的账号
  • 或Azure SQL服务器管理员账号

注:Power BI Datamart的默认管理员账号可在Power BI门户的Datamart设置中查看,格式通常为admin_xxx。

2. 为目标用户分配建表权限

登录高权限账号后,执行以下SQL语句为需要建表的用户授权:

-- 仅授予创建表的权限
GRANT CREATE TABLE TO [你的目标用户名];

-- 或添加到db_ddladmin角色(拥有所有数据库DDL操作权限)
ALTER ROLE db_ddladmin ADD MEMBER [你的目标用户名];

-- 若需要完整数据库管理权限,可添加到db_owner角色(谨慎使用,遵循最小权限原则)
ALTER ROLE db_owner ADD MEMBER [你的目标用户名];

3. 验证权限配置

执行你原本的角色查询语句,确认目标用户已加入对应权限角色:

SELECT Role = r.name, Member = m.name 
FROM sys.database_role_members as rm
INNER JOIN sys.database_principals as r
    ON r.principal_id = rm.role_principal_id
INNER JOIN sys.database_principals as m
    ON m.principal_id = rm.member_principal_id

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:51:16