Compartir a través de


Autorización del acceso de base de datos a SQL Database, Instancia administrada de SQL y Azure Synapse Analytics

Se aplica a: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

En este artículo, aprenderá lo siguiente:

  • Opciones para configurar Azure SQL Database, Azure SQL Managed Instance y Azure Synapse Analytics a fin de permitir a los usuarios realizar tareas administrativas y acceder a los datos almacenados en esas bases de datos.
  • Configuración de acceso y autorización después de crear inicialmente un servidor.
  • Instrucciones para agregar inicios de sesión y cuentas de usuario a la base de datos master y, tras ello, conceder permisos administrativos a esas cuentas.
  • Cómo agregar cuentas de usuario a las bases de datos de usuario, estén asociadas a inicios de sesión o sean cuentas de usuario independientes.
  • Configurar cuentas de usuario con permisos en bases de datos de usuario usando roles de base de datos y permisos explícitos.

Importante

A las bases de datos de Azure SQL Database, Azure SQL Managed Instance y Azure Synapse se les conocen colectivamente en el resto de este artículo como "bases de datos", y el servidor hace referencia al servidor lógico que administra las bases de datos de Azure SQL Database y Azure Synapse.

Nota:

Microsoft Entra ID era conocido anteriormente como Azure Active Directory (Azure AD).

Autenticación y autorización

Por autenticación se entiende el proceso según el cual se demuestra que el usuario es quien dice ser. Un usuario se conecta a una base de datos a través de una cuenta de usuario. Cuando un usuario intenta conectarse a una base de datos, proporciona una cuenta de usuario y la información de autenticación. El usuario se autentica con uno de los dos métodos de autenticación siguientes:

Inicios de sesión y usuarios: una cuenta de usuario en una base de datos puede estar asociada a un inicio de sesión almacenado en la base de datos master, o bien puede ser un nombre de usuario almacenado en una base de datos individual.

  • Un inicio de sesión es una cuenta individual que se encuentra en la base de datos master y a la que se puede vincular a una cuenta de usuario en una o varias bases de datos. Con un inicio de sesión, la información de credenciales de la cuenta de usuario se almacena en el propio inicio de sesión.
  • Una cuenta de usuario es una cuenta individual en una base de datos que podría estar vinculada a un inicio de sesión, si bien esto no es obligatorio. En el caso de una cuenta de usuario que no está vinculada a un inicio de sesión, la información de las credenciales se almacena con la cuenta de usuario.

La autorización para acceder a los datos y realizar diversas acciones se administran con roles de base de datos y permisos explícitos. El término autorización hace referencia a los permisos asignados a un usuario, y determina qué puede hacer ese usuario. La autorización se controla por medio de las pertenencias a roles y los permisos de nivel de objeto de la base de datos de cada cuenta de usuario. Como procedimiento recomendado, debe conceder a los usuarios los privilegios mínimos necesarios.

Inicios de sesión y cuentas de usuario existentes después de crear una base de datos

Al implementar por primera vez Azure SQL, puede especificar un nombre de inicio de sesión y una contraseña para un tipo especial de inicio de sesión administrativo, el administrador del servidor. La siguiente configuración de inicios de sesión y usuarios en las bases de datos maestras y de usuario se produce durante la implementación:

  • Se crea un inicio de sesión de SQL con privilegios administrativos usando el nombre de inicio de sesión especificado. Un inicio de sesión es una cuenta individual para iniciar sesión en SQL Database, SQL Managed Instance y Azure Synapse.
  • A este inicio de sesión se le conceden permisos administrativos completos en todas las bases de datos, como una entidad de seguridad de nivel de servidor. El inicio de sesión tiene todos los permisos disponibles y no puede ser limitado. En una instancia administrada de SQL, este inicio de sesión se agrega al rol fijo de servidor sysadmin (este rol no existe en Azure SQL Database).
  • Cuando esta cuenta inicia sesión en una base de datos, se compara con la cuenta de usuario especial dbo (cuenta de usuario), que existe en cada base de datos de usuario. El usuario dbo posee todos los permisos de base de datos en la base de datos y es miembro del rol fijo de base de datos db_owner. Más adelante en este artículo hablaremos de otros roles fijos de base de datos.

Para identificar la cuenta de administrador del servidor, abra Azure Portal y navegue hasta la pestaña Propiedades de su servidor lógico o instancia administrada:

Captura de pantalla que muestra la página Propiedades de SQL Server donde puedes obtener los valores de inicio de sesión de administrador del servidor y los valores de administrador de Microsoft Entra.

Captura de pantalla que muestra la página Instancia administrada de SQL donde puedes obtener los valores del inicio de sesión y los valores de administrador de Microsoft Entra.

Importante

El nombre de la cuenta de administrador del servidor no se puede cambiar después de crearla. Para restablecer la contraseña del administrador del servidor, ve a Azure Portal, selecciona Servidores SQL, selecciona el servidor en la lista y luego selecciona Restablecer contraseña. Para restablecer la contraseña de la instancia administrada de SQL, ve a Azure Portal, selecciona la instancia y, después, selecciona Restablecer contraseña. También puede usar PowerShell o la CLI de Azure.

Creación de inicios de sesión y usuarios adicionales con permisos administrativos

En este momento, el servidor o la instancia administrada está configurada para el acceso a través de un único inicio de sesión de SQL y una cuenta de usuario. Si quiere crear más inicios de sesión con permisos administrativos completos o parciales, dispone de las siguientes opciones (en función del modo de implementación):

  • Creación de una cuenta de administrador de Microsoft Entra con permisos administrativos completos

    Habilite la autenticación de Microsoft Entra y agregue un administrador de Microsoft Entra. Una cuenta de Microsoft Entra se puede configurar como administrador de la implementación de Azure SQL con permisos administrativos completos. Puede tratarse de una cuenta individual o una cuenta de un grupo de seguridad. Si quiere usar cuentas de Microsoft Entra para conectarse a SQL Database, SQL Managed Instance o Azure Synapse, un administrador de Microsoft Entra debe estar configurado. Para obtener más información sobre cómo habilitar la autenticación de Microsoft Entra de todos los tipos de implementación de Azure SQL, consulte los siguientes artículos:

  • En Instancia administrada de SQL, cree inicios de sesión de SQL con permisos administrativos completos.

    Nota:

    Los roles dbmanager y loginmanagerno pertenecen a las implementaciones de Azure SQL Managed Instance.

  • En SQL Database, cree inicios de sesión de SQL con permisos administrativos limitados.

    • Cree un inicio de sesión de SQL adicional en la base de datos master.
    • Agregue el inicio de sesión a los roles de nivel de servidor ##MS_DatabaseManager##, ##MS_LoginManager## y ##MS_DatabaseConnector## mediante la instrucción ALTER SERVER ROLE.

    Los miembros de los roles de base de datosmaster especiales para Azure SQL Database tienen la autoridad necesaria para crear y administrar bases de datos o para crear y administrar inicios de sesión. En el caso de las bases de datos creadas por un usuario que es miembro del rol dbmanager, el miembro se asigna al rol fijo de base de datos db_owner, y puede iniciar sesión en la base de datos y administrarla usando la cuenta de usuario dbo. Estos roles no tienen permisos explícitos fuera de la base de datos master.

    Importante

    No se pueden crear inicios de sesión de SQL adicionales con permisos administrativos completos en Azure SQL Database. Solo la cuenta de administrador del servidor o la cuenta de administrador de Microsoft Entra (que puede ser un grupo de Microsoft Entra) pueden agregar inicios de sesión a roles de servidor o quitárselos. Esto es específico para Azure SQL Database.

  • En los grupos de SQL dedicados de Azure Synapse, cree inicios de sesión de SQL con permisos administrativos limitados.

    • Cree un inicio de sesión de SQL adicional en la base de datos master.
    • Cree una cuenta de usuario en la base de datos master asociada a ese nuevo inicio de sesión.
    • Agregue la cuenta de usuario al rol dbmanager, loginmanager o a ambos en la base de datos master mediante la instrucción sp_addrolemember.
  • En los grupos de SQL sin servidor de Azure Synapse, cree inicios de sesión de SQL con permisos administrativos limitados.

Creación de cuentas para usuarios que no son administradores

Se pueden crear cuentas para los usuarios no administrativos recurriendo a uno de estos dos métodos:

  • Crear un inicio de sesión

    Cree un inicio de sesión de SQL en la base de datos master. Luego, cree una cuenta de usuario en cada base de datos a la que el usuario necesite tener acceso y asocie la cuenta de usuario a ese inicio de sesión. Este método es preferible cuando el usuario debe acceder a varias bases de datos y se quieren mantener todas las contraseñas sincronizadas, pero plantea algunas dificultades cuando se usa con la replicación geográfica, ya que hay que crear el inicio de sesión tanto en el servidor principal como en los secundarios. Para más información, vea Configuración y administración de la seguridad de Azure SQL Database para la restauración geográfica o la conmutación por error.

  • Crear una cuenta de usuario

    Cree una cuenta de usuario en la base de datos a la que un usuario necesite tener acceso (esto se conoce también como usuario independiente).

    • Con SQL Database, siempre se puede crear este tipo de cuentas de usuario.
    • Como SQL Managed Instance admite las entidades de seguridad de Microsoft Entra, puede crear cuentas de usuario para autenticarse en SQL Managed Instance sin necesidad de que los usuarios de la base de datos deban crearse como usuarios de base de datos independientes.

    Con este método, la información de autenticación del usuario se almacena en cada base de datos y se replica automáticamente en las bases de datos con replicación geográfica, pero si la misma cuenta existe en varias bases de datos y usa la autenticación de SQL, deberá sincronizar las contraseñas manualmente. Además, si un usuario tiene una cuenta en varias bases de datos con distintas contraseñas, recordarlas puede suponer un problema.

Importante

Para crear usuarios independientes asignados a identidades de Microsoft Entra, debe iniciar sesión con una cuenta de Microsoft Entra en la base de datos de Azure SQL. En SQL Managed Instance, un inicio de sesión de SQL con permisos sysadmin también puede crear un usuario o inicio de sesión de Microsoft Entra.

Para obtener ejemplos que reflejan cómo crear inicios de sesión y usuarios, vea:

Sugerencia

Para ver un tutorial de seguridad que incluye la creación de usuarios en Azure SQL Database, consulte Tutorial: Seguridad de Azure SQL Database.

Uso de roles de base de datos fijos y personalizados

Después de crear una cuenta de usuario en una base de datos, ya sea basada en un inicio de sesión o para un usuario independiente, puede autorizar a ese usuario para realizar diversas acciones y acceder a los datos de una base de datos determinada. Se pueden usar los siguientes métodos para autorizar el acceso:

  • Roles fijos de base de datos

    Agregue la cuenta de usuario a un rol fijo de base de datos. Existen nueve roles fijos de base de datos, cada uno con un conjunto definido de permisos. Los roles fijos de base de datos más comunes son: db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter y db_denydatareader. db_owner se usa habitualmente para conceder permiso completo solo a algunos usuarios. Los restantes roles fijos de base de datos son útiles para obtener rápidamente una base de datos simple en la fase de desarrollo, pero no se recomiendan para la mayoría de las bases de datos de producción. Por ejemplo, el rol fijo de base de datos db_datareader concede acceso de lectura a todas las tablas de la base de datos, lo que es más de lo estrictamente necesario.

  • Rol de base de datos personalizado

    Cree un rol de base de datos personalizado usando la instrucción CREATE ROLE. Un rol personalizado permite crear sus propios roles de base de datos definidos por el usuario y otorgar minuciosamente a cada rol los permisos mínimos necesarios para la necesidad empresarial. Después, puede agregar usuarios a ese rol personalizado. Cuando un usuario es miembro de varios roles, realiza la agregación de los permisos de todos ellos.

  • Conceder permisos directamente

    Conceda permisos directamente a la cuenta de usuario. En SQL Database, hay más de 100 permisos que pueden conceder o denegar individualmente. Muchos de estos permisos están anidados. Por ejemplo, el permiso UPDATE de un esquema incluye el permiso UPDATE en cada tabla dentro de dicho esquema. Al igual que en la mayoría de los sistemas de permisos, la denegación de un permiso anula su concesión. Dada la naturaleza anidada y el número de permisos, es preciso realizar un estudio meticuloso para diseñar un sistema de permisos apropiado para proteger adecuadamente la base de datos. Empiece con la lista de permisos de Permisos (motor de base de datos) y revise el gráfico a tamaño de póster de los permisos.

Uso de grupos

En una administración eficaz del acceso, en vez de los permisos asignados a usuarios individuales, se usan los permisos asignados a grupos de seguridad de Active Directory, así como roles fijos o personalizados.

  • Al usar la autenticación de Microsoft Entra, incluya los usuarios de Microsoft Entra en un grupo de seguridad de Microsoft Entra. Cree un usuario de base de datos independiente para el grupo. Agregue uno o varios usuarios de base de datos como miembros a un rol de base de datos integrado o personalizado con permisos específicos adecuados para ese grupo de usuarios.

  • Si se usa la autenticación de SQL, cree usuarios de base de datos independientes en la base de datos. Asigne a uno o varios usuarios de base de datos un rol de base de datos personalizado con permisos específicos adecuados para ese grupo de usuarios.

    Nota

    También se pueden usar grupos para usuarios de bases de datos no independientes.

Debe familiarizarse con las siguientes características que pueden utilizarse para limitar o elevar los permisos:

Paso siguiente