![](/img/trans.png)
[英]How to set the CONNECTION_OPTIONS = 'ApplicationIntent=ReadOnly' for elastic queries on Azure SQL?
[英]Azure SQL Server Elastic query with ApplicationIntent ReadOnly
我正在使用SQL Server Management Studio v18.2 *创建对不同Azure数据库( 水平分区 )的弹性查询。 对数据库的访问必须包含标志ApplicationIntent=ReadOnly
。
我创建了主密钥和范围凭证:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'
CREATE DATABASE SCOPED CREDENTIAL stg_credentials
WITH IDENTITY = 'user',
SECRET = 'pass';
然后,我需要创建外部数据源 。 根据文档,语法为:
CREATE EXTERNAL DATA SOURCE <data_source_name>
WITH
( LOCATION = '<prefix>://<path>[:<port>]'
[, CONNECTION_OPTIONS = '<name_value_pairs>']
[, CREDENTIAL = <credential_name> ]
[, PUSHDOWN = ON | OFF]
[, TYPE = HADOOP | BLOB_STORAGE ]
[, RESOURCE_MANAGER_LOCATION = '<resource_manager>[:<port>]'
)
[;]
我正在使用以下查询:
CREATE EXTERNAL DATA SOURCE stg_1 WITH
(TYPE = RDBMS, LOCATION = 'myserver.database.windows.net', CONNECTION_OPTIONS = 'ApplicationIntent=ReadOnly', DATABASE_NAME = 'mydatabase', CREDENTIAL = stg_credentials);
但是在执行它时,尽管我为该选项使用了正确的语法 ,但出现以下错误。
“ CONNECTION_OPTIONS”附近的语法不正确。
我是否需要在SSMS中安装任何其他组件? 语法有什么问题吗? 任何帮助将不胜感激。
* SQL Server Management Studio 15.0.18142.0 Microsoft Analysis Services客户端工具15.0.1389.0 Microsoft数据访问组件(MDAC)10.0.17763.1
请安装最新版本的SQL Server Management Studio( v18.2 ),以获得所有Azure SQL Database PaaS产品的最佳体验。
完全在T-SQL中跨Azure SQL数据库查询。 这允许对远程数据库进行只读查询,并为当前的本地SQL Server客户提供使用三部分和四部分名称或链接服务器将应用程序迁移到SQL DB的选项。
对于Azure SQL数据库,它没有参数“ CONNECTION_OPTIONS”。
您可以从提供的文档中找到它: Azure SQL数据库 。
您也可以参考本文档跨数据库查询入门(垂直分区)(预览) 。 它还给出了示例。
外部数据源:
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = RDBMS,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'Customers',
CREDENTIAL = ElasticDBQueryCred,
) ;
更新:
弹性查询预览限制 :
弹性查询仅适用于Azure SQL数据库。 您不能将其用于查询本地SQL Server或VM中的SQL Server。
因此,您无法使用Elastic Query连接到虚拟机上的SQL Server。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.