es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Hay alguna manera de extraer el UserId y Password de una Connection String?

Tengo una cadena de conexión:


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

Me gustaría extraer el Id de usuario y la contraseña de esta cadena de conexión. ¿Debo usar manipulación de cadenas y cuál sería la mejor manera de hacerlo O existe una mejor manera de obtener el Id de usuario o la contraseña?


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

pero lo anterior solo me da un objeto con las propiedades básicas.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para extraer el User ID y la contraseña de la cadena de conexión dada, se pueden utilizar métodos de manipulación de cadenas en PowerShell. La mejor forma de hacer esto sería dividir la cadena completa en un array de pares clave-valor utilizando “;” como delimitador. Luego, iterar a través de cada par clave-valor para encontrar las claves “User ID” y “Password” y extraer sus valores respectivos.

    Aquí tienes un ejemplo de fragmento de código:

    $connectionString = "Server=tcp:abcd.database.net;Initial Catalog=abcd;Persist Security Info=False;User ID=User123;Password=Password123;MultipleActiveResultSets=False"
    
    # Dividir la cadena de conexión en un array de pares clave-valor
    $keyValues = $connectionString -split ";"
    
    # Inicializar variables para almacenar los valores de User ID y Password
    $userID = ""
    $password = ""
    
    # Iterar a través de cada par clave-valor para extraer los valores de User ID y Password
    foreach ($keyValue in $keyValues) {
        $keyValue = $keyValue -split "="
        $key = $keyValue[0].Trim()
        $value = $keyValue[1].Trim()
        if ($key -eq "User ID") {
            $userID = $value
        }
        elseif ($key -eq "Password") {
            $password = $value
        }
    }
    
    # Imprimir los valores de User ID y Password extraídos
    write-host "User ID:" $userID
    write-host "Password:" $password
    

    Alternativamente, si has almacenado de forma segura la cadena de conexión en un Azure Key Vault y la has recuperado utilizando el cmdlet Get-AzKeyVaultSecret, puedes acceder directamente a los valores de User ID y Password desde el objeto recuperado utilizando sus propiedades. Por ejemplo:

    # Recuperar la cadena de conexión desde Key Vault
    $secret = Get-AzKeyVaultSecret -VaultName "Vault" -Name "Secret"
    
    # Extraer los valores de User ID y Password del objeto secreto
    $userID = $secret.Tags.User_ID
    $password = $secret.SecretValueText
    
    # Imprimir los valores de User ID y Password extraídos
    write-host "User ID:" $userID
    write-host "Password:" $password
    

    Ten en cuenta que en este caso, se asume que el valor de User ID se almacena en la etiqueta “User_ID” del objeto secreto. Deberás adaptar el código a tu caso específico si el User ID se almacena de manera diferente.

Comments are closed.