2016-11-23 59 views
0

我必須從駐留在另一臺服務器上的視圖訪問記錄。所以顯而易見的方法是使用使用sp_addlinkedserver無目錄詳細信息

EXEC sp_addlinkedserver @server = 'Server_Name' 

鏈接服務器我成功地創造了它現在我可以用

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

訪問該服務器的記錄創建鏈接服務器後,我我能夠查看所有數據庫&那裏resp表&視圖在剛剛創建的鏈接服務器的目錄菜單下。我想在目錄菜單下隱藏所有這些信息。

如何實現這一目標?提前致謝。

回答

0

你將不得不這樣做:

DENY VIEW DEFINITION。您不能刪除用戶查看視圖和存儲過程的能力,但可以刪除查看其中大部分內容的功能。

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

然後在定義鏈接服務器時使用此用戶。

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

完整的語法上面都可以在這裏MSDN

+0

發現你能解釋一下「limits_role」,「limits_user」與被取代?我無法弄清楚上述條款的含義。當我嘗試執行時,我得到的錯誤是'找不到用戶'limits_role',因爲它不存在或者您沒有權限。'和'用戶或角色'limits_user'在此數據庫中不存在。' –

+0

這只是一個例子。查看文章,瞭解您的特定實施所需的詳細信息。 @UmeshAP –