没有目录详细信息的sp_addlinkedserver

时间:2016-11-23 12:11:42

标签: sql-server sql-server-2008 linked-server

我必须从位于另一台服务器上的视图访问记录。所以显而易见的方法是使用链接服务器,我使用

成功创建了它
 EXEC sp_addlinkedserver @server = 'Server_Name'

现在我可以使用

从该服务器访问记录了
 SELECT * FROM [Server_Name].[Database_Name].[dbo].[View_Name] 

创建链接服务器后,我可以查看所有数据库&有表格和表格刚创建的链接服务器的“目录”菜单下的视图。我想在目录菜单下隐藏所有这些信息。

如何实现这一目标?提前致谢。

1 个答案:

答案 0 :(得分: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

找到