使用SQL Server 2022标准版并包含数据库用户(这意味着实例级别没有相应的SQL登录)。我希望包含的数据库用户能够使用链接服务器,特别是将包含的用户映射为在远程数据库上使用特定的用户名/密码。当我尝试使用 SSMS 添加映射时,出现错误
执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)“用户名”不是有效的登录名或您没有权限。(微软 SQL Server,错误:15007)
我的解释是,此链接服务器用户映射功能仅适用于实例级登录,当本地登录是包含的数据库用户时则无法使用。但是,我找不到有关此限制的任何明确的 Microsoft 文档。
任何人都可以确认我的理解,还是我错过了一些使这成为可能的东西?
这并不简单,您需要将两件事放在一起。
1.
包含的数据库用户
2.
sp_addlinkedsrvlogin
3.
sys.linked_logins
所有这些放在一起告诉您,在创建链接服务器时,您创建本地登录和远程登录之间的映射,并且您可以在
sys.linked_logins
as中看到它们id
,这些s 是使用时不存在的id
id ,因此无法创建映射。我的答案中使用的所有链接均引用 SQL Server 2022,因此链接服务器没有任何更改。sys.server_principals
contained databases