#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"]