我运行了以下所有内容:
在远程主数据库上:
CREATE LOGIN user1
WITH PASSWORD = 'Password22++'
GO
在远程身份验证数据库上:
CREATE USER user1
FOR LOGIN user1
WITH DEFAULT_SCHEMA = authentication
GO
EXEC sp_addrolemember N'db_owner', N'user1'
GO
在本地数据库上:
EXEC master.dbo.sp_addlinkedserver
@server = N'AZ3',
@srvproduct=N'Any',
@provider=N'MSDASQL',
@datasrc=N'AZ3'
GO
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname=N'AZ3',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'user1',
@rmtpassword='Password22++'
GO
我看到已创建链接服务器,但是当我查看它并尝试查看以下消息时:
执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo) 链接服务器“AZ3”的 OLE DB Provier“MSDASQL”报告错误。
身份验证失败。
我应该授予更多角色吗?
另外,如果我只想authentication
对远程数据库中的“ABC”表等表进行选择,那么我应该如何编写该 SQL 代码?
这是我尝试过的:
SELECT * FROM OPENQUERY([AZ3],'SELECT * FROM dbo.AspNetRoles')
但这也给了我一个错误:
链接服务器“AZ3”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][SQL Server Native Client 11.0][SQL Server]Statement(s) could not beprepared.”。链接服务器“AZ3”的 OLE DB 提供程序“MSDASQL”返回消息“[Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid object name 'dbo.AspNetRoles'.”。消息 7350,级别 16,状态 2,第 1 行无法从链接服务器“AZ3”的 OLE DB 提供程序“MSDASQL”获取列信息。