Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Se aplica a:SQL Server en Linux
En este artículo se presenta SQL Server PowerShell y se describen un par de ejemplos sobre cómo usarlo con SQL Server en Linux. La compatibilidad de PowerShell con SQL Server está disponible actualmente en Windows, macOS y Linux. Este artículo le guiará a través del uso de un equipo Windows para conectarse a una instancia de SQL Server remota en Linux.
Instala la versión más reciente de SQL Server PowerShell en Windows
El módulo SQL Server PowerShell en Windows se mantiene en la Galería de PowerShell. Cuando trabaje con SQL Server, siempre debe usar la versión más reciente del módulo de SqlServer PowerShell.
Prerequisites
Lea los Problemas conocidos de SQL Server en Linux.
Inicia PowerShell e importa el módulo de SqlServer
Comenzaremos por iniciar PowerShell en Windows. Use Win+R, en el equipo Windows y escriba PowerShell para iniciar una nueva sesión de Windows PowerShell.
SQL Server proporciona un módulo de PowerShell denominado SqlServer. Puede usar el módulo SQLServer para importar los componentes de SQL Server (proveedores y cmdlets de SQL Server) en un script o un entorno de PowerShell.
Copie y pegue el siguiente comando en el prompt de PowerShell para importar el módulo SqlServer en su sesión actual de PowerShell:
Import-Module SqlServer
Escriba el siguiente comando en el indicador de PowerShell para comprobar que el módulo SqlServer se ha importado correctamente:
Get-Module -Name SqlServer
PowerShell debe mostrar información similar al siguiente resultado:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 21.1.18102 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...
Conectarse a SQL Server y obtener información del servidor
Vamos a usar PowerShell en Windows para conectar con la instancia de SQL Server en Linux y mostrar un par de propiedades de servidor.
Copie y pegue los siguientes comandos en la ventana de PowerShell. Al ejecutar estos comandos, PowerShell:
- Muestran un cuadro de diálogo que le pide el nombre de host o la dirección IP de la instancia.
- Mostrará el cuadro de diálogo Solicitud de credenciales de Windows PowerShell, que le solicita las credenciales. Puede usar el nombre de usuario y la contraseña de SQL para conectarse a su instancia de SQL Server en Linux.
- Use el cmdlet Get-SqlInstance para conectarse al servidor y mostrar algunas propiedades
Opcionalmente, puede reemplazar la variable $serverInstance por la dirección IP o el nombre de host de la instancia de SQL Server.
# Prompt for instance & credentials to connect to SQL Server
$serverInstance = Read-Host "Enter the name of your instance"
$credential = Get-Credential
# Connect to the Server and get a few properties
Get-SqlInstance -ServerInstance $serverInstance -Credential $credential
# done
PowerShell debe mostrar información similar al siguiente resultado:
Instance Name Version ProductLevel UpdateLevel HostPlatform HostDistribution
------------- ------- ------------ ----------- ------------ ----------------
your_server_instance 14.0.3048 RTM CU13 Linux Ubuntu
Nota:
Si no se muestra nada para estos valores, lo más probable es que se produzca un error en la conexión con la instancia de SQL Server de destino. Asegúrese de que puede usar la misma información de conexión para conectarse desde SQL Server Management Studio. Luego revise las recomendaciones para solucionar problemas de conexión.
Use el proveedor de SQL Server PowerShell
Otra opción para conectarse a la instancia de SQL Server es usar el proveedor de SQL Server PowerShell. Este proveedor te permite navegar por una instancia de SQL Server como si estuvieras navegando por la estructura de árbol en Explorador de objetos, pero en la línea de comandos. De forma predeterminada, este proveedor se presenta como un PSDrive denominado SQLSERVER:\ que puede usar para conectarse a instancias de SQL Server a las que tiene acceso su cuenta de dominio, y navegar por ellas. Para más información sobre cómo configurar la autenticación de Active Directory para SQL Server en Linux, consulte Pasos de configuración.
También puede usar la autenticación de SQL con el proveedor de SQL Server PowerShell. Para ello, use el cmdlet New-PSDrive para crear un nuevo PSDrive y proporcione las credenciales adecuadas para conectarse.
En este ejemplo, verá cómo crear un PSDrive mediante la autenticación de SQL.
# Reuse the values saved in the $credential variable from the previous example.
New-PSDrive -Name SQLonDocker -PSProvider SqlServer -Root 'SQLSERVER:\SQL\localhost,10002\Default\' -Credential $credential
Puede confirmar que la unidad se creó ejecutando el cmdlet Get-PSDrive.
Get-PSDrive
Una vez que haya creado el PSDrive, puede empezar a navegar por él.
dir SQLonDocker:\Databases
Este es el aspecto que podría tener el resultado: Quizá notes que la salida es similar a la que muestra SQL Server Management Studio en el nodo de Bases de Datos. Muestra las bases de datos de usuario, pero no las bases de datos del sistema.
Name Status Size Space Recovery Compat. Owner
Available Model Level
---- ------ ---- ---------- -------- ------- -----
AdventureWorks2022 Normal 209.63 MB 1.31 MB Simple 130 sa
AdventureWorksDW2022 Normal 167.00 MB 32.47 MB Simple 110 sa
AdventureWorksDW2022 Normal 188.00 MB 78.10 MB Simple 120 sa
AdventureWorksDW2022 Normal 172.00 MB 74.76 MB Simple 130 sa
AdventureWorksDW2022 Normal 208.00 MB 40.57 MB Simple 140 sa
Si necesita ver todas las bases de datos en la instancia, una opción es usar el cmdlet Get-SqlDatabase.
Examinar registros de errores de SQL Server
Los siguientes pasos utilizan PowerShell en Windows para examinar los registros de errores en tu instancia de SQL Server en Linux. También usas el cmdlet Out-GridView para mostrar información de los registros de errores en una pantalla de vista cuadrícula.
Copie y pegue los siguientes comandos en la ventana de PowerShell. Pueden tardar unos minutos en ejecutarse. Estos comandos hacen lo siguiente:
- Muestran un cuadro de diálogo que le pide el nombre de host o la dirección IP de la instancia.
- Mostrará el cuadro de diálogo Solicitud de credenciales de Windows PowerShell, que le solicita las credenciales. Puede usar el nombre de usuario y la contraseña de SQL para conectarse a su instancia de SQL Server en Linux.
- Use el cmdlet Get-SqlErrorLog para conectarse a la instancia de SQL Server en Linux y recuperar los registros de errores desde Ayer.
- Canalizar el resultado al cmdlet Out-GridView
Opcionalmente, puede reemplazar la variable $serverInstance por la dirección IP o el nombre de host de la instancia de SQL Server.
# Prompt for instance & credentials to connect to SQL Server
$serverInstance = Read-Host "Enter the name of your instance"
$credential = Get-Credential
# Retrieve error logs since yesterday
Get-SqlErrorLog -ServerInstance $serverInstance -Credential $credential -Since Yesterday | Out-GridView
# done