我们创建了一个自动化流程来使用 TFS 和 powershell 建立一个新的 SQL Server。作为新服务器构建的一部分,我们部署了一个数据库和一组作业供 dba 使用。作为安装的一部分,我们需要为我们的一些工作创建一个 sql 代理代理的凭证。但是,我们不想将密码存储在代码中。
是否有存储密码(或生成密码)的解决方案,我们不将其存储为纯文本或代码行?
我们的服务器在 prim 中,而不是在 Azure 中。我们可以访问 Keepass,但 Thycotic 已弃用。
我们创建了一个自动化流程来使用 TFS 和 powershell 建立一个新的 SQL Server。作为新服务器构建的一部分,我们部署了一个数据库和一组作业供 dba 使用。作为安装的一部分,我们需要为我们的一些工作创建一个 sql 代理代理的凭证。但是,我们不想将密码存储在代码中。
是否有存储密码(或生成密码)的解决方案,我们不将其存储为纯文本或代码行?
我们的服务器在 prim 中,而不是在 Azure 中。我们可以访问 Keepass,但 Thycotic 已弃用。
您可以利用 PowerShell 和Thycotic REST API以编程方式从 Secret Server 获取您的凭据。使用“Windows 身份验证”以避免将凭据存储在 PowerShell 脚本中,或在运行时输入它们。
如果您的部署在构建代理服务帐户上下文下运行,那么您需要确保服务帐户在 Secret Server 中可以访问您要访问的凭据。
在部署 SQL 凭据之前,将 API 作为发布中的一个步骤,您可以获取凭据并将其传递给部署凭据的 PowerShell 脚本。
尝试这个:
Get-Credential 将提示输入用户名和密码,Export-CliXml 将结果导出到 XML 文件。如果您查看用户名,它将是明文,但密码将被加密。
当需要用户名和密码时,导入 XML:
然后在您的连接字符串中,您可以像这样使用用户名和密码。
另一种不太安全的方法是将安全字符串写入文件。
如果您关闭文件扩展名(Encrypted.txt 将被加密),任何浏览该文件所在文件夹的人都不会知道它是一个常规文本文件。
但这确实是通过默默无闻的安全性,任何可以阅读脚本的人都可以使用您正在做的事情并收集密码。