Crear y administrar bases de datos

En esta página se ofrece información sobre cómo crear, mostrar y eliminar bases de datos de SQL Server en una instancia de Cloud SQL.

Una instancia recién creada tiene una base de datos sqlserver.

Para obtener más información sobre cómo crear bases de datos de SQL Server y temas relacionados, consulta la documentación de SQL Server.

Para obtener información sobre cómo definir un valor predeterminado para el tipo de orden de clasificación que se utiliza en las bases de datos de una instancia, consulta el artículo Crear instancias.

Antes de empezar

Para efectuar las tareas indicadas en esta página, debes haber hecho antes lo siguiente:

  • Has creado una instancia de Cloud SQL. Para obtener más información, consulta Crear instancias.

Si tienes previsto usar el cliente sqlcmd para crear o gestionar tus bases de datos, debes tener lo siguiente:

  • Acceso configurado y conexión a la instancia con un cliente sqlcmd.

Crear una base de datos en la instancia de Cloud SQL

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de navegación de SQL, selecciona Bases de datos.
  4. Haz clic en Crear base de datos.
  5. En el cuadro de diálogo Nueva base de datos, especifica el nombre de la base de datos.
  6. Haz clic en Crear.

gcloud

Para obtener información de referencia, consulta gcloud sql databases create.

Para obtener información sobre las intercalaciones en SQL Server, consulta el artículo Compatibilidad con intercalaciones y Unicode en la documentación de SQL Server.

gcloud sql databases create DATABASE_NAME \
--instance=INSTANCE_NAME \
[--charset=CHARSET] \
[--collation=COLLATION]

Terraform

Para crear una base de datos, usa un recurso de Terraform.

resource "google_sql_database" "database" {
  name     = "my-database"
  instance = google_sql_database_instance.instance.name
}

Aplica los cambios

Para aplicar la configuración de Terraform en un Google Cloud proyecto, sigue los pasos que se indican en las siguientes secciones.

Preparar Cloud Shell

  1. Abre Cloud Shell.
  2. Define el Google Cloud proyecto predeterminado en el que quieras aplicar tus configuraciones de Terraform.

    Solo tienes que ejecutar este comando una vez por proyecto y puedes hacerlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión .tf. Por ejemplo, main.tf. En este tutorial, nos referiremos al archivo como main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.

    Copia el código de ejemplo en el archivo main.tf que acabas de crear.

    También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

  3. Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
    terraform init

    Si quieres usar la versión más reciente del proveedor de Google, incluye la opción -upgrade:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
    terraform plan

    Haz las correcciones necesarias en la configuración.

  2. Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply

    Espera hasta que Terraform muestre el mensaje "Apply complete!".

  3. Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para comprobar que Terraform los ha creado o actualizado.

Eliminar los cambios

Para eliminar los cambios, sigue estos pasos:

  1. Para inhabilitar la protección contra eliminación, en el archivo de configuración de Terraform, asigna el valor false al argumento deletion_protection.
    deletion_protection =  "false"
  2. Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply
  1. Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce yes en la petición:

    terraform destroy

REST v1

En la siguiente solicitud se usa el método databases:insert para crear una base de datos en la instancia especificada.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.
  • database-name: nombre de una base de datos de la instancia de Cloud SQL

Método HTTP y URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

Cuerpo JSON de la solicitud:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

En la siguiente solicitud se usa el método databases:insert para crear una base de datos en la instancia especificada.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.
  • database-name: nombre de una base de datos de la instancia de Cloud SQL

Método HTTP y URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

Cuerpo JSON de la solicitud:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

Mostrar tus bases de datos

Para mostrar una lista con todas las bases de datos en una instancia, efectúa los pasos siguientes:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de la izquierda, haz clic en Bases de datos. En la página Bases de datos se muestran las bases de datos junto con su tipo de ordenación, su conjunto de caracteres y su tipo de base de datos.

gcloud

Para obtener información de referencia, consulta gcloud sql databases list.

gcloud sql databases list \
--instance=INSTANCE_NAME

REST v1

La siguiente solicitud usa el método databases:list para enumerar las bases de datos de una instancia.

Cuando generes la lista de bases de datos mediante la API, verás otras bases de datos de plantilla y una base de datos del sistema que la consola no muestra. No puedes eliminar ni administrar la base de datos del sistema.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

La siguiente solicitud usa el método databases:list para enumerar las bases de datos de una instancia.

Cuando generes la lista de bases de datos mediante la API, verás otras bases de datos de plantilla y una base de datos del sistema que la consola no muestra. No puedes eliminar ni administrar la base de datos del sistema.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.

Método HTTP y URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

Cambiar el propietario de una base de datos

Si quieres eliminar el inicio de sesión de usuario asociado a un propietario de una base de datos que ya no está activo, primero debes asignar un nuevo propietario a la base de datos.

Para añadir un nuevo propietario de la base de datos, sigue estos pasos:

gcloud

  1. Conéctate a tu base de datos y crea dos cuentas de demostración:
          create login TEST_LOGIN with password='TEST_PASSWORD'
          create login REPORT_USER with password='REPORT_USER_PASSWORD'
          GRANT CREATE ANY DATABASE TO TEST_LOGIN AS [CustomerDbRootRole]
          

    Haz las siguientes sustituciones:

    • TEST_LOGIN: el nombre de la cuenta de prueba, como test-login.
    • TEST_PASSWORD: la contraseña de la cuenta de prueba.
    • REPORT_USER: el nombre de una segunda cuenta de usuario, como report-user. Esta cuenta se convierte en el nuevo propietario de la base de datos.
    • REPORT_USER_PASSWORD: la contraseña de la segunda cuenta de usuario.
  2. Conéctate a tu base de datos con la cuenta de prueba que acabas de crear. A continuación, crea una base de datos de prueba con el siguiente comando:
        CREATE DATABASE TEST_DB
        

    Haz las siguientes sustituciones:

    • TEST_DB: el nombre de la base de datos de prueba que quieras crear, como test-database
    • TEST_LOGIN: el nombre de la cuenta de prueba, como test-login.

    El propietario de la base de datos se asigna automáticamente a la cuenta de prueba.

  3. Conéctate a la base de datos con el inicio de sesión de SQL Server. Después, ejecuta el siguiente comando para intentar eliminar el inicio de sesión TEST_LOGIN:
          drop login TEST_LOGIN
          

    Sustituye TEST_LOGIN por el nombre de la cuenta de prueba, como test-login.

    La operación falla y se devuelve el siguiente error:

            Login TEST_LOGIN owns one or more database(s). Change
            the owner of the database(s) before dropping the login.
            
  4. Conéctate a la base de datos TEST_DB como cuenta REPORT_USER y concede a la cuenta los permisos necesarios para que coincidan con los del propietario actual.
          GRANT IMPERSONATE on LOGIN::REPORT_USER to TEST_LOGIN
          
  5. Conéctate a la base de datos con la cuenta de prueba. A continuación, ejecuta el siguiente comando para autorizar la segunda cuenta como propietaria de la base de datos:
          ALTER AUTHORIZATION ON DATABASE::TEST_DB TO REPORT_USER
          
  6. Conéctate a la base de datos como REPORT_USER y elimina los permisos concedidos.
          REVOKE IMPERSONATE on LOGIN::REPORT_USER to TEST_LOGIN
          
  7. Conéctate a la base de datos con la cuenta de SQL Server. A continuación, ejecuta el siguiente comando para eliminar el inicio de sesión de TEST_LOGIN:
          DROP LOGIN TEST_LOGIN
          
    Cuando termine, se devolverá el siguiente mensaje:
          DROP LOGIN for TEST_LOGIN by sqlserver(sqlserver) is successful.
          

Eliminar una base de datos

Para eliminar una base de datos de la instancia de Cloud SQL, efectúa los pasos siguientes:

Consola

  1. En la Google Cloud consola, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
  3. En el menú de la izquierda, haz clic en Bases de datos.
  4. En la lista de bases de datos, busca la base de datos que quieres eliminar y haz clic en el icono de papelera.
  5. En el cuadro de diálogo Eliminar base de datos, introduce el nombre de la base de datos y, a continuación, haz clic en Eliminar.

gcloud

Para obtener información de referencia, consulta gcloud sql databases delete.

gcloud sql databases delete DATABASE_NAME \
--instance=INSTANCE_NAME

REST v1

La siguiente solicitud usa el método databases:delete para eliminar la base de datos especificada.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.
  • database-name: nombre de una base de datos de la instancia de Cloud SQL

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

REST v1beta4

La siguiente solicitud usa el método databases:delete para eliminar la base de datos especificada.

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • project-id: el ID del proyecto
  • instance-id: el ID de instancia.
  • database-name: nombre de una base de datos de la instancia de Cloud SQL

Método HTTP y URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name

Para enviar tu solicitud, despliega una de estas opciones:

Deberías recibir una respuesta JSON similar a la siguiente:

Siguientes pasos

Pruébalo

Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud SQL en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.

Probar Cloud SQL gratis