机密工作流示例
在此工作流示例中,我们使用机密来设置用于连接到 Azure Data Lake Store 的 JDBC 凭据。
创建机密范围
创建名为 jdbc
的机密范围。
若要创建 Databricks 支持的机密范围:
databricks secrets create-scope jdbc
若要创建 Azure Key Vault 支持的机密范围,请按照创建 Azure Key Vault-支持的机密范围中的说明操作。
注意
如果帐户没有高级计划,则必须创建范围,并将 MANAGE 权限授予所有用户(“用户”)。 例如:
databricks secrets create-scope jdbc --initial-manage-principal users
创建机密
创建机密的方法取决于你使用的是 Azure Key Vault 支持的范围还是 Databricks 支持的范围。
在 Azure Key Vault 支持的范围创建机密
使用 Azure 设置机密 REST API 或 Azure 门户 UI 添加机密 username
和 password
:
在 Databricks 支持的范围内创建机密
添加机密 username
和 password
。 运行以下命令,然后在打开的编辑器中输入机密值。
databricks secrets put-secret jdbc username
databricks secrets put-secret jdbc password
在笔记本中使用机密
在笔记本中,读取存储在机密范围 jdbc
中的机密以配置 JDBC 连接器:
val driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
val connectionProperties = new java.util.Properties()
connectionProperties.setProperty("Driver", driverClass)
val jdbcUsername = dbutils.secrets.get(scope = "jdbc", key = "username")
val jdbcPassword = dbutils.secrets.get(scope = "jdbc", key = "password")
connectionProperties.put("user", s"${jdbcUsername}")
connectionProperties.put("password", s"${jdbcPassword}")
现在,可以将这些 ConnectionProperties
与 JDBC 连接器结合使用,以便与你的数据源通信。
从该范围中获取的值永远不会显示在笔记本中(请参阅机密编辑)。
授予对另一个组的访问权限
注意
此步骤要求帐户拥有高级计划。
验证凭据配置无误后,通过向 datascience
组授权读取机密范围并列出可用机密,与该组共享这些凭据以用于分析。
通过发出以下请求,向 datascience
组授予对这些凭据的读取权限:
databricks secrets put-acl jdbc datascience READ
有关机密访问控制的详细信息,请参阅机密 ACL。