我跑了以下所有内容:
在远程主数据库上:
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)OLE DB Provier 链接服务器“AZ3”的“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]语句无法准备。” 链接服务器“AZ3”的OLE DB提供程序“MSDASQL”返回消息“[Microsoft] [SQL Server Native Client 11.0] [SQL Server]无效的对象名称'dbo.AspNetRoles'。”。 Msg 7350,Level 16,State 2,Line 1 无法从OLE DB提供程序“MSDASQL”获取链接服务器“AZ3”的列信息。