You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/search/search-how-to-index-sql-managed-instance.md
+7-23Lines changed: 7 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,14 +10,14 @@ ms.service: azure-ai-search
10
10
ms.custom:
11
11
- ignite-2023
12
12
ms.topic: how-to
13
-
ms.date: 12/10/2024
13
+
ms.date: 01/28/2025
14
14
---
15
15
16
16
# Indexer connections to Azure SQL Managed Instance through a public endpoint
17
17
18
18
Indexers in Azure AI Search connect to external data sources over a public endpoint. If you're setting up an [Azure SQL indexer](search-how-to-index-sql-database.md) for a connection to a SQL managed instance, follow the steps in this article to ensure the public endpoint is set up correctly.
19
19
20
-
Alternatively, if the managed instance is behind a firewall, [create a shared private link](search-indexer-how-to-access-private-sql.md) instead.
20
+
Alternatively, for private connections, [create a shared private link](search-indexer-how-to-access-private-sql.md) instead.
21
21
22
22
> [!NOTE]
23
23
> [Always Encrypted](/sql/relational-databases/security/encryption/always-encrypted-database-engine) columns are not currently supported by Azure AI Search indexers.
@@ -28,33 +28,17 @@ This article highlights just the steps for an indexer connection in Azure AI Sea
28
28
29
29
1. For a new SQL Managed Instance, create the resource with the **Enable public endpoint** option selected.
30
30
31
-

31
+

32
32
33
-
1. Alternatively, if the instance already exists, you can enable public endpoint on an existing SQL Managed Instance under **Security** > **Virtual network** > **Public endpoint** > **Enable**.
33
+
1. Alternatively, if the instance already exists, you can enable public endpoint on an existing SQL Managed Instance under **Security** > **Networking** > **Public endpoint** > **Enable**.
34
34
35
-

36
-
37
-
## Verify NSG rules
38
-
39
-
Check the Network Security Group has the correct **Inbound security rules** that allow connections from Azure services.
You can restrict inbound access to the public endpoint by replacing the current rule (`public_endpoint_inbound`) with the following two rules:
46
-
47
-
* Allowing inbound access from the `AzureCognitiveSearch`[service tag](/azure/virtual-network/service-tags-overview#available-service-tags) ("SOURCE" = `AzureCognitiveSearch`, "NAME" = `cognitive_search_inbound`)
48
-
49
-
* Allowing inbound access from the IP address of the search service, which can be obtained by pinging its fully qualified domain name (for example, `<your-search-service-name>.search.windows.net`). ("SOURCE" = `IP address`, "NAME" = `search_service_inbound`)
50
-
51
-
For each rule, set "PORT" = `3342`, "PROTOCOL" = `TCP`, "DESTINATION" = `Any`, "ACTION" = `Allow`.
35
+

52
36
53
37
## Get public endpoint connection string
54
38
55
-
Copy the connection string to use in the search indexer's data source connection. Be sure to copy the connection string for the**public endpoint**(port 3342, not port 1433).
39
+
1. To get a connection string, go to**Settings**> **Connection strings**.
1. Copy the connection string to use in the search indexer's data source connection. Be sure to copy the connection string for the **public endpoint** (port 3342, not port 1433).
Copy file name to clipboardExpand all lines: articles/search/search-indexer-how-to-access-private-sql.md
+11-7Lines changed: 11 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ Although you can call the Management REST API directly, it's easier to use the A
31
31
32
32
+ You should have a minimum of Contributor permissions on both Azure AI Search and SQL Managed Instance.
33
33
34
-
+ Azure SQL Managed Instance connection string. Managed identity is not currently supported with shared private link. Your connection string must include a user name and password.
34
+
+ Azure SQL Managed Instance connection string. Managed identity isn't currently supported with shared private link. Your connection string must include a user name and password.
35
35
36
36
> [!NOTE]
37
37
> Shared private links are billable through [Azure Private Link pricing](https://azure.microsoft.com/pricing/details/private-link/) and charges are invoiced based on usage.
@@ -59,7 +59,7 @@ For more information about connection properties, see [Create an Azure SQL Manag
@@ -96,15 +96,17 @@ For more information about connection properties, see [Create an Azure SQL Manag
96
96
97
97
Provide a path to the *create-pe.json* file if you've navigated away from the file location. You can type `dir` at the command line to confirm the file is in the current directory.
98
98
99
-
1.Press Enter to run the command.
99
+
1.Run the command.
100
100
101
101
When you complete these steps, you should have a shared private link that's provisioned in a pending state. **It takes several minutes to create the link**. Once it's created, the resource owner needs to approve the request before it's operational.
102
102
103
+
You can check the status of the shared private link in the Azure portal. On your search service page, under **Settings** > **Properties**, scroll down to find the shared private link resources and view the JSON value. When the provisioning state changes from *pending* to *succeeded*, you can continue on to the next step.
104
+
103
105
## 4 - Approve the private endpoint connection
104
106
105
107
On the SQL Managed Instance side, the resource owner must approve the private connection request you created.
106
108
107
-
1. In the Azure portal, open the **Private endpoint connections** tab of the managed instance.
109
+
1. In the Azure portal, open the **Security** > **Private endpoint connections** of the managed instance.
108
110
109
111
1. Find the section that lists the private endpoint connections.
110
112
@@ -124,9 +126,11 @@ You can now configure an indexer and its data source to use an outbound private
124
126
125
127
This article assumes a [REST client](search-get-started-rest.md) and uses the REST APIs.
126
128
127
-
1.[Create the data source definition](search-how-to-index-sql-database.md) as you would normally for Azure SQL. By default, a managed instance listens on port 3342, but on a virtual network it listens on 1433.
129
+
1. Get an ADO connection string for your SQL managed instance in the **VNet-local endpoint** syntax. By default, a managed instance listens on port 3342, but on a virtual network it listens on 1433.
130
+
131
+
1.[Create the data source definition](search-how-to-index-sql-database.md) as you would normally for Azure SQL.
128
132
129
-
Provide the connection string that you copied earlier with an Initial Catalog specified.
133
+
Provide the connection string that you copied earlier with an Initial Catalog set to your database name.
130
134
131
135
```http
132
136
POST https://myservice.search.windows.net/datasources?api-version=2024-07-01
@@ -151,7 +155,7 @@ This article assumes a [REST client](search-get-started-rest.md) and uses the RE
151
155
152
156
1. [Create the indexer definition](search-howto-create-indexers.md), setting the indexer `executionEnvironment` to "private".
153
157
154
-
[Indexer execution](search-howto-run-reset-indexers.md#indexer-execution-environment) occurs in either a private execution environment that's specific to your search service, or a multi-tenant environment hosted by Microsoft and used to offload expensive skillset processing for multiple customers. **When connecting over a private endpoint, indexer execution must be private.**
158
+
[Indexer execution](search-howto-run-reset-indexers.md#indexer-execution-environment) occurs in either a private execution environment that's specific to your search service, or a multitenant environment hosted by Microsoft and used to offload expensive skillset processing for multiple customers. **When connecting over a private endpoint, indexer execution must be private.**
155
159
156
160
```http
157
161
POST https://myservice.search.windows.net/indexers?api-version=2024-07-01
Notice that if you specified the service tag for the multitenant environment IP rule, you'll still need an explicit inbound rule for the private execution environment (meaning the search service itself), as obtained through `nslookup`.
0 commit comments