Sunday, 29 December 2024

SQL: Generate a range of numbers

SELECT ones.n + 10*tens.n + 100*hundreds.n + 1000*thousands.n
FROM 
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) ones(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) tens(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) hundreds(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) thousands(n)
ORDER BY 1


Monday, 25 November 2024

SQL: Cannot execute as the database principal because the principal "dbo" does not exist

Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. (Framework Microsoft SqlClient Data Provider):

  • Server Name: server_name or IP
  • Error Number: 15517
  • Severity: 16
  • State: 1
  • Line Number: 1

Resolution: ALTER AUTHORIZATION ON DATABASE::[YourDatabaseName] TO [sa];


Wednesday, 6 November 2024

SQL: Linked Server Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'

Sometimes when trying to access a linked server, you’d get an error saying “Login failed for user NT AUTHORITY\ANONYMOUS LOGON”. 

This happens because you’re connected using Windows authentication, and SQL Server fails to “forward” your credentials to the linked server.

To check if SQL is using Kerberos:

USE [master]
GO
SELECT      s.session_id, s.original_login_name, c.net_transport, c.auth_scheme, c.local_net_address, c.local_tcp_port, s.program_name
FROM sys.dm_exec_sessions s

LEFT OUTER JOIN sys.dm_exec_connections c on s.session_id = c.session_id
WHERE s.is_user_process = 1


To determine the authentication method of a connection, execute the following query:

SELECT net_transport, auth_scheme
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;


Validating Authentication Properties Used by Connections

USE [master]
GO
SELECT COUNT(auth_scheme) as sessions_count, net_transport, auth_scheme
FROM sys.dm_exec_connections
GROUP BY net_transport, auth_scheme

 

To resolve this:

  • Both SQL Servers and the Client must be in the same Domain
  • Both SQL Servers must be able to register SPNs (Service Principal names)


Sunday, 3 November 2024

SQL: Create user and grant read-only access to a database

1. Create the Login (if it doesn’t exist)
If the login for the user hasn’t been created at the SQL Server level, you need to create it. This example assumes the user is an SQL Server authentication user.

    USE [master];
    CREATE LOGIN [new_username] WITH PASSWORD = 'your_password';


2. Grant Access to the Database
Now, switch to the database you want to grant access to and create a user associated with the login.

    USE [your_database_name];
    CREATE USER [new_username] FOR LOGIN [new_username];


3. Add the User to the db_datareader Role
Finally, add the user to the db_datareader role to provide read-only access to the database.

    ALTER ROLE [db_datareader] ADD MEMBER [new_username];


Saturday, 11 May 2024

Upgrade Windows 11 Home to Windows 11 Pro

  • Disable internet connection (Wi-Fi, Internet, etc.)
  • Change the product key using the following Generic product key:
                VK7JG-NPHTM-C97JM-9MPGT-3V66T
  • When the upgrade is completed, connect to the Internet
  • Use a purchased product key to Activate the Windows


Thursday, 2 May 2024

Find Windows product key using PowerShell

(Get-WmiObject -query "select * from SoftwareLicensingService").OA3xOriginalProductKey


Sunday, 10 September 2023

Show SSID Password in WIndows

netsh wlan show profile

netsh wlan show profile name="SSID" key=clear

netsh wlan show profile name="SSID" key=clear | findstr Key



SQL: Generate a range of numbers

SELECT ones.n + 10*tens.n + 100*hundreds.n + 1000*thousands.n FROM       (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) ones(n),      (VALU...