Sql server 如何使用弹性作业从一个数据库访问另一个数据库的数据?
我尝试从一个数据库访问另一个数据库。为此,我使用弹性作业。使用弹性作业,我将创建从一个数据库到另一个数据库的表。但无法访问数据或传输数据。我尝试使用外部数据源和外部表 我使用了以下代码: 外部数据源Sql server 如何使用弹性作业从一个数据库访问另一个数据库的数据?,sql-server,azure-sql-database,jobs,azure-elasticpool,Sql Server,Azure Sql Database,Jobs,Azure Elasticpool,我尝试从一个数据库访问另一个数据库。为此,我使用弹性作业。使用弹性作业,我将创建从一个数据库到另一个数据库的表。但无法访问数据或传输数据。我尝试使用外部数据源和外部表 我使用了以下代码: 外部数据源 CREATE EXTERNAL DATA SOURCE RemoteReferenceData WITH ( TYPE=RDBMS, LOCATION='myserver', DATABASE_NAME='dbname', CREDENTIAL= JobRun );
CREATE EXTERNAL DATA SOURCE RemoteReferenceData
WITH
(
TYPE=RDBMS,
LOCATION='myserver',
DATABASE_NAME='dbname',
CREDENTIAL= JobRun
);
CREATE EXTERNAL TABLE [tablename] (
[Id] int null,
[Name] nvarchar(max) null
)
WITH (
DATA_SOURCE = RemoteReferenceData,
SCHEMA_NAME = N'dbo',
OBJECT_NAME = N'mytablename'
);
获取以下错误:
> Error retrieving data from server.dbname. The underlying error
> message received was: 'The server principal "JobUser" is not able to
> access the database "dbname" under the current security context.
> Cannot open database "dbname" requested by the login. The login
> failed. Login failed for user 'JobUser'.
您的声明中有一些错误:
LOCATION='[servername].database.windows.net'
凭证时,:用户名和密码应为用于登录客户数据库的用户名和密码。当前不支持使用Azure Active Directory和弹性查询进行身份验证
CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred
WITH IDENTITY = 'Username',
SECRET = 'Password';
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = RDBMS,
LOCATION = '[servername].database.windows.net',
DATABASE_NAME = 'Mydatabase',
CREDENTIAL = ElasticDBQueryCred,
) ;
CREATE EXTERNAL TABLE [dbo].[CustomerInformation]
( [CustomerID] [int] NOT NULL,
[CustomerName] [varchar](50) NOT NULL,
[Company] [varchar](50) NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc)
SELECT * FROM CustomerInformation
我使用代码从DB1
查询Mydatabase
中的表:
有关更多详细信息,请参阅此处:
希望这有帮助。您创建了刷新凭据和作业凭据吗?这两个数据库都在同一台服务器中,因此我希望刷新凭据不是necessary@akshayaparimaladevi请看我的答案,并希望它能帮助您解决错误。如果我的答案对您有帮助,您可以将其标记为“这对其他社区成员有益”的答案。非常感谢。