【问题标题】:How to set the CONNECTION_OPTIONS = 'ApplicationIntent=ReadOnly' for elastic queries on Azure SQL?如何为 Azure SQL 上的弹性查询设置 CONNECTION_OPTIONS = 'ApplicationIntent=ReadOnly'?
【发布时间】:2021-05-18 22:31:23
【问题描述】:

我正在使用弹性查询访问其他数据库。数据源是这样创建的:

CREATE EXTERNAL DATA SOURCE TheCompanyQueryDataSrc WITH (
    TYPE = RDBMS,
    --CONNECTION_OPTIONS = 'ApplicationIntent=ReadOnly',
    CREDENTIAL = ElasticDBQueryCred,
    LOCATION = 'thecompanysql.database.windows.net',
    DATABASE_NAME = 'TheCompanyProd'
);

为减少数据库负载,已创建并应使用只读副本。据我了解,我应该添加CONNECTION_OPTIONS = 'ApplicationIntent=ReadOnly'(在上面的代码中注释掉)。但是,我只得到Incorrect syntax near 'CONNECTION_OPTIONS'

两个数据库(设置连接的数据库+外部表,另一个只读在同一台服务器上(thecompanysql.database.windows.net)。两者都是设置兼容性杠杆 SQL Server 2019 (150)。

我还应该设置什么才能让它工作?

【问题讨论】:

    标签: sql-server azure-sql-database database-replication


    【解决方案1】:

    CREATE EXTERNAL DATA SOURCE 语法不支持选项CONNECTION_OPTIONS = 'ApplicationIntent=ReadOnly'。我们不能在语句中使用它。

    如果你想实现那个只读请求,方法是请使用只有readonly(db_reader)权限的用户账号登录外部数据库。

    例如:

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>' ;
    
    CREATE DATABASE SCOPED CREDENTIAL SQL_Credential
    WITH
      IDENTITY = '<username>' -- readonly user account,
      SECRET = '<password>' ;
    
    CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc
    WITH
      ( TYPE = RDBMS ,
        LOCATION = '<server_name>.database.windows.net' ,
        DATABASE_NAME = 'Customers' ,
        CREDENTIAL = SQL_Credential
      ) ;
    

    由于不支持该选项,因此我们不能将其与弹性查询一起使用。使用 SSMS 连接到 Azure SQL 数据的唯一方法是:

    HTH。

    【讨论】:

    • 感谢您的帮助。但是,阅读文档,语法应该是正确的(docs.microsoft.com/en-us/sql/t-sql/statements/…)。我尝试这样做的原因不是限制对只读的访问。目的是使用数据库的只读副本。
    • @pepr 请注意 SQL 服务器支持它,但 Azure SQL 不支持。选择一个产品选择SQL数据库你就能找到不同。
    • 谢谢,有道理。尽管如此,其目的实际上是将查询重定向到 Azure SQL 数据库的只读副本。我找不到如何做到这一点。
    • @pepr 由于不支持该选项,因此我们无法使用弹性查询连接到副本。请看我的更新。如果我的回答对你有帮助,希望你能采纳。这对其他社区成员可能是有益的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多