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和弹性查询进行身份验证

  • 整个T-SQL代码示例应如下所示:

    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请看我的答案,并希望它能帮助您解决错误。如果我的答案对您有帮助,您可以将其标记为“这对其他社区成员有益”的答案。非常感谢。