rr-stefan
Goto Top

SQL Authentifizierung - Unterschied Read-SQLViewData und Invoke-SQLcmd

Guten Abend,
ich probiere gerade verschiedene Formen der MS SQL Server Abfrage (onPrem) aus. Das Ganze findet innerhalb einer Domäne mit einem Client und und einem MS SQL Server statt.

Hierbei ist aufgefallen, dass sich Read-SQLViewData und Invoke-SQLcmd unterschiedlich verhalten.

Read-SqlViewData -ServerInstance $SQL["Server"] -DatabaseName $SQL["db"] -SchemaName "dbo" -ViewName $SQL["view"] -TopN 2  
liefert ohne Authentifizierungsanfrage die Ergebnisse zurück.

Invoke-Sqlcmd -Query $SQL["query"] -ServerInstance $SQL["Server"] -Database $SQL["db"]  
liefert folgenden Fehler, trotz einer eigenen CA: A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - Die Zertifikatkette wurde von einer nicht vertrauenswürdigen Zertifizierungsstelle ausgestellt.)

Warum verhalten sich die cmdlets so unterschiedlich? Wie kann man bei Invoke-SQLcmd in der Domäne eine Authentifizierung erreichen ohne im Script Logindaten zu hinterlegen?

Vielen Dank!

Content-Key: 6502526149

Url: https://administrator.de/contentid/6502526149

Printed on: July 21, 2024 at 01:07 o'clock

Mitglied: 13034433319
13034433319 Jun 11, 2024 updated at 20:02:33 (UTC)
Goto Top
Warum verhalten sich die cmdlets so unterschiedlich?
Vergessen die CA am Client in die trusted Roots zu importieren oder Servername/FQDN der für den Zugriff benutzt wird nicht im Zertifikat enthalten?
https://learn.microsoft.com/de-de/powershell/module/sqlserver/invoke-sql ...
-TrustServerCertificate
Gibt an, ob der Kanal verschlüsselt wird, während das Durchlaufen der Zertifikatkette zur Überprüfung der Vertrauensstellung umgangen wird.

Wie kann man bei Invoke-SQLcmd in der Domäne eine Authentifizierung erreichen ohne im Script Logindaten zu hinterlegen?
https://learn.microsoft.com/de-de/powershell/module/sqlserver/invoke-sql ...
Wenn Benutzername und Kennwort nicht angegeben sind, versucht dieses Cmdlet eine Windows-Authentifizierungsverbindung mithilfe des Windows-Kontos, das die Windows PowerShell Sitzung ausführt.

Gruß