-- 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
Publicar un comentario