【问题标题】:Can we use Synonyms in other server?我们可以在其他服务器上使用同义词吗?
【发布时间】:2015-08-12 07:31:29
【问题描述】:

我正在使用一些旧数据库,所以我使用不同的服务器。

我在“A”服务器上创建了同义词,并且可以毫无问题地对其进行一些操作。现在我想在“B”服务器中使用它,但它现在允许我访问服务器“B”中的同义词。我已授予该服务器的所有访问权限。

即使我能够访问已创建同义词的同一张表。

片段: 在服务器“A”上: 为 dbo.Employee 创建同义词 [dbo].[EmployeeDB]

在服务器“B”上; 使用表名:select * from [B].[databaseName].[dbo].[Employee]

不使用同义词名称:select * from [B].[databaseName].[dbo].[EmployeeDB]

【问题讨论】:

    标签: sql-server database sql-server-2012 synonym


    【解决方案1】:

    没有:You cannot reference a synonym that is located on a linked server. https://msdn.microsoft.com/en-us/library/ms187552.aspx

    反过来可能会更好(即,您在 B 上创建一个与 A 链接的同义词) 如果要隐藏 dbo.Employee,也可以使用视图。

    【讨论】:

    • 使用视图有什么缺点?如果视图可以处理同义词所做的所有事情,甚至还应该存在同义词吗?
    • @Tigerjz32 同义词是服务器对象的别名,包括存储过程、函数等。例如,如果您更改引用对象而不更改视图,则会出现缺点。
    • select * from reference.object 即使这是我的观点的定义?
    猜你喜欢
    • 1970-01-01
    • 2020-06-09
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    相关资源
    最近更新 更多