Conexión con Power Shell - Sql server - sqlclient doc

   
    -- ejemplo completo para Crear un Login y un Usuario en SQL Server Standard Security

-- Cambia al contexto de la base de datos master
USE [master];
GO

-- Crear un login de SQL Server con autenticación SQL
CREATE LOGIN [test2] WITH PASSWORD = '1234';
GO

-- Cambia al contexto de la base de datos pruebaAnalisis
USE [pruebaAnalisis];
GO

-- Crear un usuario en la base de datos asociado al login
CREATE USER [andy] FOR LOGIN [test2];
GO
-- Asignar roles al usuario
-- Por ejemplo, darle permisos de lectura y escritura
ALTER ROLE [db_datareader] ADD MEMBER [andy];
ALTER ROLE [db_datawriter] ADD MEMBER [andy];
GO

--------------------------------------------------------------------------------------

-- luego se prueba en el powershell -- recordar en el User Id va el nombre del LOGIN

$connectionString = "Server=localhost;Database=pruebaAnalisis;User Id=test2;Password=1234;"
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString

try {
    $connection.Open()
    Write-Output "Conexión exitosa"
} catch {
    Write-Error "Error de conexión: $_"
} finally {
    $connection.Close()
}


-- ejemplo completo para Crear un Login y un Usuario en SQL Server Trusted Connection

-- Cambia al contexto de la base de datos master
USE [master];
GO

-- Crear un login para un usuario de Windows
-- se tiene que utilizar SELECT @@SERVERNAME AS ServerName; para obtener el nombre del servidor dominio o en el cmd 'hostname'
-- para el nombre de usuario de windows 'net user' en el cmd
CREATE LOGIN [DESKTOP-1F5GQI3\Administrador] FROM WINDOWS;
GO

-- Cambia al contexto de la base de datos pruebaAnalisis
USE [pruebaAnalisis];
GO

-- Crear un usuario en la base de datos asociado al login de Windows
CREATE USER [andy17] FOR LOGIN [DESKTOP-1F5GQI3\Administrador];
GO

-- Asignar roles al usuario de Windows
-- Por ejemplo, darle permisos de lectura y escritura
ALTER ROLE [db_datareader] ADD MEMBER [andy17];
ALTER ROLE [db_datawriter] ADD MEMBER [andy17];
GO

---------------------------------------------------------------

--Luego en el power shell

# Definir la cadena de conexión con autenticación de Windows (Trusted Connection)
$connectionString = "Server=localhost;Database=pruebaAnalisis;Trusted_Connection=True;"

# Crear una nueva conexión SQL
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString

try {
    # Intentar abrir la conexión
    $connection.Open()
    Write-Output "Conexión exitosa a la base de datos 'pruebaAnalisis' usando Trusted Connection."
        
} catch {
    # Manejar errores de conexión
    Write-Error "Error de conexión: $_"
} finally {
    # Asegurarse de cerrar la conexión
    $connection.Close()
    Write-Output "Conexión cerrada."
}


------------------------------------------------------------
--https://www.connectionstrings.com/sql-server/


-- Consultar los usuarios de la base de datos
SELECT name AS UserName, type_desc AS UserType
FROM sys.database_principals
WHERE type IN ('S', 'U', 'G')  -- S = SQL user, U = Windows user, G = Windows group
  AND name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys');


  USE pruebaAnalisis;
GO

-- Consultar los logins asociados a los usuarios de la base de datos
SELECT dp.name AS UserName,
       sp.name AS LoginName,
       dp.type_desc AS UserType
FROM sys.database_principals dp
JOIN sys.server_principals sp ON dp.sid = sp.sid
WHERE dp.type IN ('S', 'U', 'G')  -- S = SQL user, U = Windows user, G = Windows group
  AND dp.name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys');

--obbtener nombre del servidor
SELECT @@SERVERNAME AS ServerName;

-- Obtener las bases de datos disponibles
SELECT name AS DatabaseName
FROM sys.databases;

-- Obtener la lista de usuarios en la base de datos actual
SELECT name AS UserName
FROM sys.syslogins
WHERE name <> 'sa';  -- Excluye el usuario 'sa'

Comentarios

Entradas populares de este blog

Transacciones - Doc - Sql Server

Conexión con Power Shell - Sql server - OLE DB doc