【问题标题】:How to access data of one DB from another using Elastic Job?如何使用 Elastic Job 从另一个数据库访问一个数据库的数据?
【发布时间】:2020-03-10 07:42:02
【问题描述】:

我正在尝试将数据从一个数据库访问到另一个数据库。为此,我正在使用弹性作业。使用弹性作业我要创建从一个数据库到另一个数据库的表。但无法访问数据或传输数据。我试过了它使用外部数据源和外部表。

我使用了以下代码: 外部数据源

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'.

【问题讨论】:

  • 您是否同时创建了刷新和作业凭据?
  • 两个数据库都在同一台服务器上,所以我希望不需要刷新凭证
  • @akshayaparimaladevi 请看我的回答,希望它可以帮助您解决错误。如果我的回答对您有帮助,您可以将其标记为答案 这可能对其他社区成员有益。谢谢。

标签: sql-server azure-sql-database jobs azure-elasticpool


【解决方案1】:

你的陈述有一些错误:

  1. LOCATION 值应为:LOCATION='[servername].database.windows.net'

  2. 确保在创建CREDENTIAL 时:“用户名”和“密码”应该是用于登录客户数据库的用户名和密码。目前不支持使用带有弹性查询的 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中的表:

更多详情,请参考:Get started with cross-database queries (vertical partitioning) (preview)

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    • 2010-09-19
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多