Recently we had an issue with one of our customers who was not able to login into her SQL Server. In SQL’s errorlog we found this message:
At first we checked the permissions, they seemed to be ok.
So we went back to the original message in the log. To be honest, we didn’t read the message well enough, and were a little bit confused about the first part of the message: “Token-based server access validation failed with an infrastructure error.” Since the database permissions were fine, we thought there had to be an issue with the AD account itself, since we were able to connect without any issue.
Unfortunately, that was not the case either. So we had to dig a little deeper. Now we took the time to read the second part the error message in the error log (“Login lacks Connect SQL permission”), which is, to be totally honest quite clear.
It turned out our customer was member of a domain group called Marketing. We used this query to check any instance level securables on the group:
And look, there it was… The AD group our customer is part of, has no permission to connect to the SQL Server.
Remember, DENY overrules all other permissions. The customer could not connect because of one of her groups was denied access, even though her permissions were just fine. So we granted the correct permissions to the group, removed the customer’s individual login and after that, she was able to connect again.
When your pc is using a proxy server to connect to the internet, the following needs to be added to your Powershell profile. Otherwise, you won’t be able to register any Powershell repository. This means you cannot use the commandlet Install-Module to install modules.
If you want to create Powershell projects in Visual Studio, you can visit the Visual Studio Marketplace and search for Powershell. After installing the .vsix file, you will be able to create Powershell projects inside Visual Studio.
Recently I was given a nice task: can you import some Excel files into a SQL Server database. Luckily, using dbatools and ImportExcel this was an easy task. The files were named <schemaName>.<tableName>.xlsx. I made sure all needed schemas were available in my database, and then I used the following script to import the files.