我正在将Azure Databricks工作区中的当前配置单元元存储区表迁移到Unity Catalog(UC),遇到了与新用户权限相关的问题。
所以我的集群设置将是这样的:
- DBR 13.3 LTS
- 模式:共享(启用UC)
- 群集配置有一个init_script,它运行
apt-get
和其他命令以安装ODBC驱动程序
注意到如果我跑步:%sh whoami
在非UC集群中,我会得到root
作为响应,这很好,因为init_script将运行apt-get和命令来安装ODBC驱动程序,但现在我在启用UC的集群中运行相同的%sh whoami
,我会得到类似于spark-XXXX-footer-XXXX-footer-XXXX-af的响应。
然后运行%sh id spark-XXXXXXXX-XXXX-XXXX-XXXX-af
,得到如下结果:uid=1119(spark-XXXXXXXX-XXXX-XXXX-XXXX-af) gid=1119(spark-XXXXXXXX-XXXX-XXXX-XXXX-af) groups=1119(spark-XXXXXXXX-XXXX-XXXX-XXXX-af)
个
对于未启用UC的群集,我会得到如下内容:uid=0(root) gid=0(root) groups=0(root)
个
我试着运行命令如下:%sh usermod -u 0 spark-XXXXXXXX-XXXX-XXXX-XXXX-af
个
或%sh visudo spark-XXXXXXXX-XXXX-XXXX-XXXX-af ALL=(ALL) NOPASSWD: ALL
个
查看我是否可以在非UC群集中授予用户spark-XXXXXXXX-XXXX-XXXX-XXXX-af
与之前的root
相同的权限,但我没有成功。
有没有人遇到过这个问题,并得到了解决方案?通过向启用UC的用户授予root权限或在启用UC的集群中安装ODBC的任何方法。
1条答案
按热度按时间qq24tv8q1#
当您在共享UC群集上运行
%sh whoami
命令时,它是在隔离环境中执行的,这是保护用户相互隔离所必需的,因此visudo
等命令都不会有帮助。但是init脚本仍然作为
root
执行-您可以通过创建一个简单的init脚本来检查这一点,内容如下:字符串
如果你启用了集群日志,那么你应该在标准输出的文件中看到它有
root
。