2016-11-23 1 views
0

Ich muss auf Datensätze zugreifen, die sich auf einem anderen Server befinden. So ist die offensichtliche Art und Weise zu tun, von Server Linked mit ich es erfolgreich erstellt vonsp_addlinkedserver ohne Katalogdetails

EXEC sp_addlinkedserver @server = 'Server_Name' 

Jetzt mit Ich bin in der Lage für den Zugriff auf Aufzeichnungen von diesem Server mit

SELECT * FROM [Server_Name].[Database_Name].[dbo].[View_Name] 

Nach Linked Server erstellen, I Ich bin in der Lage, alle Datenbanken & dort respektive Tabellen & Ansichten unter Kataloge Menü von gerade erstellten Linked Server zu sehen. Ich möchte alle diese Informationen im Katalogmenü ausblenden.

Wie erreichen? Danke im Voraus.

Antwort

0

Sie gehen zu müssen, um so etwas tun:

VIEW DEFINITION DENY. Sie können die Fähigkeit des Benutzers nicht entfernen, die Existenz der Ansichten und gespeicherten Prozeduren zu sehen, aber Sie können die Fähigkeit entfernen, (die meisten) Inhalte in ihnen anzuzeigen.

deny view definition to limits_role 
go 
sp_addrolemember 'limits_role ', 'limits_user' 
go 
sp_addrolemember 'db_datareader', 'limits_user' 
go 

Verwenden Sie dann diesen Benutzer beim Definieren des Verbindungsservers.

sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' 
    [ , [ @useself = ] 'TRUE' | 'FALSE' | NULL ] 
    [ , [ @locallogin = ] 'locallogin' ] 
    [ , [ @rmtuser = ] 'rmtuser' ] 
    [ , [ @rmtpassword = ] 'rmtpassword' 

Voll Syntax der oben finden Sie hier MSDN

+0

können Sie erklären, was ‚limits_role‘, ‚limits_user‘ mit ersetzt werden? Ich kann die Bedeutung der obigen Begriffe nicht herausfinden. Wenn ich versuche, auszuführen, erhalte ich Fehler wie "Kann den Benutzer nicht finden limits_role", weil es nicht existiert oder Sie keine Erlaubnis haben. und 'Benutzer oder Rolle' limits_user 'existiert nicht in dieser Datenbank.' –

+0

Dies ist nur ein Beispiel. Werfen Sie einen Blick auf den Artikel für die Details, die für Ihre spezielle Implementierung notwendig sind. @UmeshAP –

Verwandte Themen