如何通过Spark SQL为工作区级Service Principal授予数据对象访问权限
为工作区级Service Principal授予数据对象访问权限
可以为工作区级Service Principal授予数据对象访问权限,操作逻辑与用户/角色的权限授予流程一致,具体操作方式如下:
方式一:使用SQL命令操作
- 确认目标Service Principal的applicationId(客户端ID),引用格式为
sp:<application-id> - 执行权限授予命令,语法与用户/角色授权完全一致,示例如下:
- 直接授予表的SELECT权限:
GRANT SELECT ON TABLE my_db.my_table TO `sp:12345678-1234-1234-1234-1234567890ab`; - 将角色授予Service Principal:
GRANT analyst_role TO `sp:12345678-1234-1234-1234-1234567890ab`;
注意:SP的标识需要用反引号括起来,避免因冒号导致的语法错误
- 直接授予表的SELECT权限:
方式二:通过Databricks UI操作
- 打开目标数据对象(数据库、表、视图等)的详情页面
- 点击页面右上角的权限按钮进入权限管理界面
- 点击添加权限,在弹出的选择框中输入Service Principal的名称或applicationId,找到并选中目标SP
- 勾选需要授予的权限(如SELECT、MODIFY、CREATE等),点击保存完成配置
注意事项
- 执行授权操作的账号需要具备对应的GRANT权限
- 工作区级Service Principal仅归属当前工作区,无需跨工作区额外配置
内容的提问来源于stack exchange,提问作者Erik Asplund
相关产品推荐
相关产品推荐

