Ich habe Benutzer, die einen Verbindungsserver sehen, den sie nicht sehen sollen.
Der Verbindungsserver ist so definiert, dass nur ich Zugriff darauf habe, aber jeder kann ihn sehen und verwenden.
Ich habe den neuen Verbindungsserver mit den folgenden Schritten erstellt:
- Verbinden Sie den SSMS-Objekt-Explorer mit der SQL Server-Instanz
- Erweitern
Server Objects
, RechtsklickLinked Servers
und LinksklickNew Linked Server...
General
Wählen Sie unter der Registerkarte den ServernamenSQL Server
ausServer type
und schreiben Sie ihn- Wählen Sie unter der
Security
Registerkarte im oberen TeilAdd
"sa" ausLocal Login
, geben SieRemote User
den Namen und einRemote Password
- Wählen Sie unter der
Security
Registerkarte im unteren Teil (unterFor a login not defined in the list above, connections will:
) die erste Option:Not be made
- Klicken Sie auf
OK
und starten Sie den Test
Jetzt ist die einzige Person, die den Verbindungsserver sehen soll, ich ("sa"), aber irgendwie können andere Benutzer ihn sehen und verwenden.
Hinweis 1: Die Benutzer, die den Verbindungsserver verwenden können, haben Berechtigungen für den Remoteserver. Sie sehen keine Daten, die sie nicht sehen sollten. Sie können nur vom Verbindungsserver aus darauf zugreifen, wenn sie dies nicht können sollten.
Anmerkung 2: Ich bin sysadmin
in beiden Fällen der einzige .
sql-server
security
ssms
linked-server
Roi Gavish
quelle
quelle
Antworten:
Es gibt keine Möglichkeit, einen Verbindungsserver zu "verstecken" oder zu verhindern, dass nicht autorisierte Benutzer versuchen, ihn zu verwenden. Sie können lediglich steuern, ob sie tatsächlich Zugriff auf der anderen Seite haben. Ein Verbindungsserver an und für sich ist kein tatsächliches Objekt. Wie bei einem Synonym gewähren Sie keinen Zugriff auf den Alias, sondern nur auf die Objekte, auf die er verweist.
Probieren Sie es aus und Sie werden sehen, dass einige Ihrer Annahmen (z. B. "ein Login ... kann den Verbindungsserver im Objekt-Explorer nicht sehen") falsch sind. Ich war das:
sys.servers
, um die Liste der Verbindungsserver anzuzeigen.Ich konnte die folgende Abfrage problemlos ausführen:
Ich konnte jedoch keine Abfragen für Nicht-Systemdatenbanken ausführen, da ich keinen expliziten Zugriff auf Nicht-Systemdatenbanken oder die darin enthaltenen Objekte gewährt hatte. Z.B:
Hat diesen Fehler ergeben:
Ich gehe davon aus, dass Sie restriktivere Ergebnisse erzielen können, indem Sie den Zugriff auf bestimmte Objekte auf dem Verbindungsserver (oder
DENY CONNECT SQL
auf diese Anmeldung insgesamt) explizit verweigern. Dies beschränkt jedoch nicht die Auswirkungen auf den Verbindungsserver. Dies betrifft auch direkte Verbindungen.Auf jeden Fall verstehe ich nicht, worum es Ihnen geht:
quelle
Sie können die erste Option "Nicht erstellt mit" für eine Anmeldezuordnung wie folgt verwenden:
Hier ist das Ergebnis mit dem zugeordneten Login:
Und hier ist, was mit einem anderen Konto passiert
quelle