Есть ли способ извлечь идентификатор пользователя и пароль из строки подключения?

#powershell #connection-string #azure-powershell

#powershell #соединительная строка #azure-powershell

Вопрос:

У меня есть строка подключения

 Server=tcp:abcd.database.net;Initial Catalog=abcd;Persist Security Info=False;User ID=User123;Password=Password123;MultipleActiveResultSets=False  

Я хотел бы извлечь идентификатор пользователя и пароль из этой строки подключения. Нужно ли мне использовать манипуляции со строками и как это лучше всего сделать, или есть лучший способ получить идентификатор пользователя или пароль

 $conn=new-object System.Data.SqlClient.SQLConnection $conn.ConnectionString = Get-AzKeyVaultSecret -VaultName "Vault" -Name "Secret" -AsPlainText  

но вышесказанное дает мне только объект с основными свойствами.

Комментарии:

1. SqlConnectionStringBuilder .

2. @JeroenMostert это потрясающе, я об этом не знал. Я собирался сделать предложение ConvertFrom-StringData . Почему бы не опубликовать это в качестве ответа?

3. Потому что тогда мне нужно было бы опубликовать больше одного слова. Оставлено в качестве упражнения для читателя. 🙂

4. Попробуйте это: [System.Data.SqlClient.SqlConnectionStringBuilder]$Server

5. @Amy если бы вы могли решить проблему самостоятельно, вы могли бы опубликовать ответ, чтобы показать другим, как вы могли бы ее решить. Это может помочь другим в будущем.

Ответ №1:

Я последовал указаниям @Jeroen Mostert, прочитал о SqlConnectionStringBuilder и попробовал команду ниже, которая сработала для меня

 $ConnectionString = Get-AzKeyVaultSecret -VaultName "KeyVault" -Name "secretname" -AsPlainText $connString = New-Object System.Data.SqlClient.SQLConnectionStringBuilder($ConnectionString) $sqlServerId = $connString["User ID"] $sqlServerPwd = $connString["Password"]