# Microsoft SQL Server / MS SQL (beta)

1. [Create a Service Account](#id-1.-create-a-service-account)
2. [Grant additional permissions for preview access. (optional)](#id-2.-grant-additional-permissions-for-preview-access.-optional)
3. [Create a new datasource in Select Star](#id-3.-create-a-new-data-source-in-select-star)
4. [Enable query logging](#id-4.-enable-query-logging)
5. [Choose databases and schemas](#id-5.-choose-databases-and-schemas)

For instances operating within a non-publicly accessible environment, such as a private network, please refer to our guide on [Integrating Private Network Data Sources](https://docs.selectstar.com/integrations/private-network) for detailed instructions and best practices.

## 1. Create a Service Account

We recommend creating a dedicated service account for Select Star with metadata-only roles and permissions.

Execute the following commands:

```sql
CREATE LOGIN <username> WITH PASSWORD = '<password>';
CREATE USER <username> FOR LOGIN <username>;
GRANT VIEW DEFINITION TO <username>;
```

### For Microsoft SQL Server

Execute the following additional commands:

```sql
-- Run use master and GRANT together,
use master
GRANT VIEW SERVER STATE TO <username>;
```

### For Cloud SQL for SQL Server

Log in as `sqlserver` user and execute the following command:

```sql
GRANT VIEW SERVER STATE TO <username> AS CustomerDbRootRole;
```

## 2. Grant additional permissions for preview access. (optional)

{% hint style="info" %}
This step is required if you wish to enable Select Star's **Preview** Feature.
{% endhint %}

Execute the following command:

```sql
-- Grant access to all tables
GRANT SELECT TO <username>;
```

## 3. Create a new data source in Select Star

* **Display Name** - The Name you want to give to your new datasource.
* **Hostname** - Your hostname defines the location where your database is hosted.
* **Port** - The communication endpoint used to connect clients to the SQL Server instance.
* **Username** - Specify the User to connect to the SQL Server instance. It should have enough privileges to read all the metadata.
* **Password** - Password.
* **Database** - The database name.

![Create Data Source](https://3470314135-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MgAiVthA_yg9UXKuhyY%2Fuploads%2Fgit-blob-b23c5c97a9857739a66f6d8956a7b1a4ec882775%2Fmssql-form.gif?alt=media)

{% hint style="info" %}
Select Star currently does not support Popularity and Lineage is only supported for views in this integration. If needed, please feel free to contact us so we can explore alternative solutions.
{% endhint %}

## 4. Enable query logging

Select Star platform supports various query log sources, for optimal selection, please refer to [the documentation](https://docs.selectstar.com/integrations/mssql/query-log).

## 5. Choose databases and schemas

After you fill in the information, you'll be asked to select the databases you'd like to load into Select Star.

{% hint style="info" %}
Select Star will not read queries or metadata for databases, schemas, or tables that are not loaded. Please load all data for which you expect to see metadata.

You can [change the databases and schemas](https://docs.selectstar.com/data-source-management/manage-data-sources#configure-a-data-source) you have loaded if needed.
{% endhint %}

Your metadata should start loading automatically, once the sync is complete, you'll be able to see it in Select Star.

See the link below for more information on how to navigate through data warehouses.

{% content-ref url="../learning-data/getting-started-data-warehouse" %}
[getting-started-data-warehouse](https://docs.selectstar.com/learning-data/getting-started-data-warehouse)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.selectstar.com/integrations/mssql.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
