This page provides the prerequisites, setup procedure, and limitations for using
SSRS in Cloud SQL.
Before you begin
Before using SSRS on Cloud SQL, you must have the following:
A Cloud SQL instance to host the report server database
A host where you install and run SSRS.
It can be either a Compute Engine VM or a host that doesn't use Compute Engine.
For installation instructions, see
Install SQL Server Reporting Services.
A Cloud DNS record to assign a hostname for your Cloud SQL instance.
You can create a hostname by using one of the following options:
Cloud DNS: Use Cloud DNS to create a hostname that points to your instance.
Custom DNS zone: If you manage your own DNS zone, then create an A record that maps your preferred hostname to the IP address of your instance.
Local hostname mapping: Modify your system's hosts file to create a custom alias for your instance.
Two existing Cloud SQL logins, a setup login and a service login.
To create a login, see gcloud sql users create.
If you want to use Windows authentication, then you must use Managed Active Directory to join the SQL Server instance and the host running SSRS. For more information, see Use Managed Microsoft AD with Cloud SQL.
Procedure
To set up SSRS in Cloud SQL, perform the following steps:
The following table describes this operation's
gcloud parameters:
Parameter
Description
Allowed values
Default value
--setup-login
Required. The login used to connect to the instance during SSRS setup. This is the first login that is requested in Report Server Configuration Manager when setting a report server database.
This must be a existing SQL Server login, such as sqlserver
None
--service-login
Required. The SQL Server login used by report server to connect to the report server database during SSRS setup. This is the second login that is requested in Report Server Configuration Manager when setting a report server database.
This must be an existing SQL Server login and must be different from the setup login.
None.
--report-database
Required. An existing or a new report database name on the instance.
Certain special characters are not allowed in the report database name, such as spaces, brackets, non-English characters.
None
--duration
Optional. The number of hours that the SSRS lease is active during which you can perform the SSRS setup.
Between 1 and 12 hours. For example, 4h
5 hours
REST v1
Using the REST API, you can acquire an SSRS lease on an instance. To acquire an SSRS lease, specify the following:
Two different SQL Server logins, the setup login and service login
SETUP_LOGIN: the SQL Server login that's used to connect to the SQL Server instance during SSRS setup. This the first login that is requested in Report Server Configuration Manager when setting a report server database.
SERVICE_LOGIN: the SQL Server login that's used by report server to connect to the report server database during SSRS setup. This is the second login that is requested in Report Server Configuration Manager when setting a Report Server Database.
REPORT_DATABASE: an existing or a new report database name on the instance.
Microsoft doesn't allow certain special characters in the report database name, such as spaces, brackets, non-English characters.
DURATION: Optional. The number of hours that the SSRS lease is active during which you can perform the SSRS setup.
Between 1 and 12 hours, for example, 4h.
SETUP_LOGIN: the SQL Server login that's used to connect to the SQL Server instance during SSRS setup. This the first login that is requested in Report Server Configuration Manager when setting a report server database.
SERVICE_LOGIN: the SQL Server login that's used by report server to connect to the report server database during SSRS setup. This is the second login that is requested in Report Server Configuration Manager when setting a Report Server Database.
REPORT_DATABASE: an existing or a new report database name on the instance.
Microsoft doesn't allow certain special characters in the report database name, such as spaces, brackets, non-English characters.
DURATION: Optional. The number of hours that the SSRS lease is active during which you can perform the SSRS setup.
Between 1 and 12 hours, for example, 4h.
Open Reporting Services Configuration Manager on the host where SSRS is installed.
Connect to your local report server instance.
Click Change Database.
Enter the SQL Server hostname created in Cloud DNS and the SQL Server login credentials for the setup login used for the SSRS lease.
Enter the name of a new report server database or existing report database used for the SSRS lease.
Enter the SQL Server login credentials for the service login used for the SSRS lease.
Click Next and finish through the last step.
If not already set, then configure the Web Service URL and Web Portal URL. The Web Portal should load successfully within a few seconds.
Release an SSRS lease
You can release a lease manually, or you can wait until the lease automatically expires. Releasing the lease is required to revert any elevated permissions needed for setup and to allow the service login to connect to the report database.
The service login can't access the report database until the lease expires or is released manually.
The following command releases an SSRS lease.
Using the REST API, you can release an SSRS lease for an instance. As shown in the following request example, you only need to provide the instance name and project ID.
Using the REST API, you can release an SSRS lease for an instance. As shown in the following request example, you only need to provide the instance name and project ID.
Active Directory logins are not supported for setting up the report database.
The report database name can contain only alphanumeric characters and hyphens.
You must acquire a lease for changing the login used to connect to the report database through Report Server Configuration Manager.
For a database that is processed by a service login, the import sql files and delete replicated database operations can fail between the completion of the SSRS setup and the release of the lease.
You must delete and recreate the database user for the service login on an imported report database. This is because the existing user in the imported database doesn't belong to the new instance.
When adding new report servers for a scale-out deployment in SSRS, you must acquire and release the SSRS lease for every new Windows VM hosting a report server. Each Cloud SQL instance requires that you configure the new report database by using the existing report database.
You must create a new lease every time you want to change the login credentials for the report server database in Report Server Configuration Manager.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# SQL Server Reporting Services (SSRS)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nCloud SQL supports [SQL Server Reporting Services (SSRS)](https://learn.microsoft.com/en-us/sql/reporting-services/create-deploy-and-manage-mobile-and-paginated-reports?view=sql-server-ver16) which helps you create, deploy, and manage paginated reports.\n\nThis page provides the prerequisites, setup procedure, and limitations for using\nSSRS in Cloud SQL.\n\nBefore you begin\n----------------\n\nBefore using SSRS on Cloud SQL, you must have the following:\n\n- A Cloud SQL instance to host the report server database\n- A host where you install and run SSRS. It can be either a Compute Engine VM or a host that doesn't use Compute Engine. For installation instructions, see [Install SQL Server Reporting Services](https://learn.microsoft.com/en-us/sql/reporting-services/install-windows/install-reporting-services?view=sql-server-ver16).\n- A Cloud DNS record to assign a hostname for your Cloud SQL instance.\n You can create a hostname by using one of the following options:\n\n - Cloud DNS: Use [Cloud DNS](/dns/docs/overview) to create a hostname that points to your instance.\n - Custom DNS zone: If you manage your own DNS zone, then [create an A record](/dns/docs/records) that maps your preferred hostname to the IP address of your instance.\n - Local hostname mapping: Modify your system's `hosts` file to create a custom alias for your instance.\n- Two existing Cloud SQL logins, a setup login and a service login.\n To create a login, see [`gcloud sql users create`](/sdk/gcloud/reference/sql/users/create).\n\n | **Note:** Cloud SQL doesn't support using Windows logins for SSRS.\n\n If you want to use Windows authentication, then you must use Managed Active Directory to join the SQL Server instance and the host running SSRS. For more information, see [Use Managed Microsoft AD with Cloud SQL](/sql/docs/sqlserver/configure-ad).\n\nProcedure\n---------\n\nTo set up SSRS in Cloud SQL, perform the following steps:\n\n1. [Acquire an SSRS lease](/sql/docs/sqlserver/ssrs#acquire).\n2. [Set up SSRS](/sql/docs/sqlserver/ssrs#setup).\n3. [Release an SSRS lease](/sql/docs/sqlserver/ssrs#release).\n\n### Acquire an SSRS lease\n\nSSRS requires elevated permissions during setup. To acquire an SSRS lease for your instance, use the following command: \n\n### gcloud\n\nUse the following command to acquire a lease: \n\n```bash\ngcloud sql instances acquire-ssrs-lease INSTANCE_NAME \\\n--project=PROJECT_NAME \\\n--setup-login=SETUP_LOGIN \\\n--service-login=SERVICE_LOGIN \\\n--report-database=REPORT_DATABASE \\\n--duration=DURATION \\\n```\n\n\nThe following table describes this operation's\n`gcloud` parameters:\n\n### REST v1\n\nUsing the REST API, you can acquire an SSRS lease on an instance. To acquire an SSRS lease, specify the following:\n\n- Two different SQL Server logins, the setup login and service login\n- The report database name\n- The duration for which the lease is active\n\n\nOnly the `DURATION` field is optional. For more information, see\n[AcquireSsrsLeaseContext](/sql/docs/sqlserver/admin-api/rest/v1/instances#AcquireSsrsLeaseContext):\n\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of the project.\n- \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e: the name of the instance.\n- \u003cvar translate=\"no\"\u003eSETUP_LOGIN\u003c/var\u003e: the SQL Server login that's used to connect to the SQL Server instance during SSRS setup. This the first login that is requested in Report Server Configuration Manager when setting a report server database.\n- \u003cvar translate=\"no\"\u003eSERVICE_LOGIN\u003c/var\u003e: the SQL Server login that's used by report server to connect to the report server database during SSRS setup. This is the second login that is requested in Report Server Configuration Manager when setting a Report Server Database.\n- \u003cvar translate=\"no\"\u003eREPORT_DATABASE\u003c/var\u003e: an existing or a new report database name on the instance. Microsoft doesn't allow certain special characters in the report database name, such as spaces, brackets, non-English characters.\n- \u003cvar translate=\"no\"\u003eDURATION\u003c/var\u003e: Optional. The number of hours that the SSRS lease is active during which you can perform the SSRS setup. Between 1 and 12 hours, for example, `4h`.\n\n\nHTTP method and URL: \n\n```bash\nPOST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/acquireSsrsLease\n```\n\n\nRequest JSON body: \n\n```json\n{\n \"acquireSsrsLeaseContext\": {\n \"setupLogin\": SETUP_LOGIN,\n \"serviceLogin\": SERVICE_LOGIN,\n \"reportDatabase\": REPORT_DATABASE,\n \"duration\": DURATION,\n }\n}\n```\n\n### REST v1beta4\n\nUsing the REST API, you can acquire an SSRS lease on an instance. To acquire an SSRS lease, specify the following:\n\n- Two different SQL Server logins, the setup login and service login\n- The report database name\n- The duration for which the lease is active\n\nOnly the `DURATION` field is optional. For more information, see\n[AcquireSsrsLeaseContext](/sql/docs/sqlserver/admin-api/rest/v1beta4/instances#AcquireSsrsLeaseContext):\n\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of the project.\n- \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e: the name of the instance.\n- \u003cvar translate=\"no\"\u003eSETUP_LOGIN\u003c/var\u003e: the SQL Server login that's used to connect to the SQL Server instance during SSRS setup. This the first login that is requested in Report Server Configuration Manager when setting a report server database.\n- \u003cvar translate=\"no\"\u003eSERVICE_LOGIN\u003c/var\u003e: the SQL Server login that's used by report server to connect to the report server database during SSRS setup. This is the second login that is requested in Report Server Configuration Manager when setting a Report Server Database.\n- \u003cvar translate=\"no\"\u003eREPORT_DATABASE\u003c/var\u003e: an existing or a new report database name on the instance. Microsoft doesn't allow certain special characters in the report database name, such as spaces, brackets, non-English characters.\n- \u003cvar translate=\"no\"\u003eDURATION\u003c/var\u003e: Optional. The number of hours that the SSRS lease is active during which you can perform the SSRS setup. Between 1 and 12 hours, for example, `4h`.\n\n\nHTTP method and URL: \n\n```bash\nPOST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/acquireSsrsLease\n```\n\n\nRequest JSON body: \n\n```json\n{\n \"acquireSsrsLeaseContext\": {\n \"setupLogin\": SETUP_LOGIN,\n \"serviceLogin\": SERVICE_LOGIN,\n \"reportDatabase\": REPORT_DATABASE,\n \"duration\": DURATION,\n }\n}\n```\n\n### Set up SSRS\n\n| **Note:** To automate the setup process described in this section, you can use any scripting solution, such as PowerShell.\n\nTo perform the SSRS setup, follow these steps:\n\n1. Open Reporting Services Configuration Manager on the host where SSRS is installed.\n2. Connect to your local report server instance.\n3. Click **Change Database** .\n 1. Enter the SQL Server hostname created in Cloud DNS and the SQL Server login credentials for the setup login used for the SSRS lease.\n 2. Enter the name of a new report server database or existing report database used for the SSRS lease.\n 3. Enter the SQL Server login credentials for the service login used for the SSRS lease.\n 4. Click **Next** and finish through the last step.\n4. If not already set, then configure the **Web Service URL** and **Web Portal URL**. The Web Portal should load successfully within a few seconds.\n\n### Release an SSRS lease\n\nYou can release a lease manually, or you can wait until the lease automatically expires. Releasing the lease is required to revert any elevated permissions needed for setup and to allow the service login to connect to the report database.\nThe service login can't access the report database until the lease expires or is released manually.\nThe following command releases an SSRS lease. \n\n### gcloud\n\nUse the following command to release a lease: \n\n```bash\ngcloud sql instances release-ssrs-lease INSTANCE_NAME \\\n--project=PROJECT_NAME\n```\n\n### REST v1\n\n\nUsing the REST API, you can release an SSRS lease for an instance. As shown in the following request example, you only need to provide the instance name and project ID.\n\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of the project.\n- \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e: the name of the instance.\n\n\nHTTP method and URL: \n\n```bash\nPOST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/releaseSsrsLease\n```\n\n### REST v1beta4\n\n\nUsing the REST API, you can release an SSRS lease for an instance. As shown in the following request example, you only need to provide the instance name and project ID.\n\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: the ID of the project.\n- \u003cvar translate=\"no\"\u003eINSTANCE_NAME\u003c/var\u003e: the name of the instance.\n\n\nHTTP method and URL: \n\n```bash\nPOST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/releaseSsrsLease\n```\n\nLimitations\n-----------\n\n- Active Directory logins are not supported for setting up the report database.\n- The report database name can contain only alphanumeric characters and hyphens.\n- You must acquire a lease for changing the login used to connect to the report database through Report Server Configuration Manager.\n- For a database that is processed by a service login, the import sql files and delete replicated database operations can fail between the completion of the SSRS setup and the release of the lease.\n- You must delete and recreate the database user for the service login on an imported report database. This is because the existing user in the imported database doesn't belong to the new instance.\n- When adding new report servers for a scale-out deployment in SSRS, you must acquire and release the SSRS lease for every new Windows VM hosting a report server. Each Cloud SQL instance requires that you configure the new report database by using the existing report database.\n- You must create a new lease every time you want to change the login credentials for the report server database in Report Server Configuration Manager."]]