Entidades de seguridad (motor de base de datos)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Las entidades de seguridad son entidades que pueden solicitar recursos de SQL Server. Igual que otros componentes del modelo de autorización de SQL Server , las entidades de seguridad se pueden organizar en jerarquías. El ámbito de influencia de una entidad de seguridad depende del ámbito de su definición: Windows, servidor o base de datos; y de si la entidad de seguridad es indivisible o es una colección. Un Inicio de sesión de Windows es un ejemplo de entidad de seguridad indivisible y un Grupo de Windows es un ejemplo de una del tipo colección. Toda entidad de seguridad tiene un identificador de seguridad (SID). Este tema se aplica a todas las versiones de SQL Server, pero hay algunas restricciones en las entidades de seguridad a nivel de servidor de SQL Database o Azure Synapse Analytics.

Nota:

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

Entidades de seguridad de nivel de SQL Server

  • Inicio de sesión para la autenticación de SQL Server
  • Inicio de sesión con autenticación de Windows para un usuario de Windows
  • Inicio de sesión con autenticación de Windows para un grupo de Windows
  • Inicio de sesión de autenticación de Microsoft Entra para un usuario de Microsoft Entra
  • Inicio de sesión de autenticación de Microsoft Entra para un grupo de Microsoft Entra
  • Rol de servidor

Entidades de seguridad de nivel de bases de datos

  • Usuario de la base de datos (Existen 12 tipos de usuarios. Para más información, vea CREATE USER).
  • Rol de base de datos
  • Rol de aplicación

Inicio de sesión sa

El inicio de sesión de SQL Server sa es una entidad de seguridad a nivel de servidor. Se crea de forma predeterminada cuando se instala una instancia. A partir de SQL Server 2005 (9.x), la base de datos predeterminada de sa es master. Es un cambio de comportamiento con respecto a versiones anteriores de SQL Server. El inicio de sesión sa es miembro del rol fijo de nivel de servidorsysadmin. Este inicio de sesión sa tiene todos los permisos en el servidor y no puede limitarse. Además, sa no se puede quitar, pero puede deshabilitarse para que nadie lo emplee.

Usuario y esquema dbo

El usuario dbo es una entidad de seguridad de usuario especial que hay en cada base de datos. Todos los administradores de SQL Server, los miembros del rol fijo de servidor sysadmin, el inicio de sesión sa y los propietarios de la base de datos especifican las bases de datos como el usuario dbo. El usuario dbo tiene todos los permisos en la base de datos y no se limitar ni quitar. dbo representa el propietario de la base de datos, pero la cuenta de usuario dbo no es lo mismo que el rol fijo de base de datos db_owner, mientras que el rol fijo de base de datos db_owner no es lo mismo que la cuenta de usuario que se registra como el propietario de la base de datos.
El usuario dbo tiene la propiedad del esquema dbo. El esquema dbo es el predeterminado para todos los usuarios, salvo que se especifique otro. El esquema dbo no puede quitarse.

Rol público de base de datos y de servidor

Cada inicio de sesión pertenece al rol fijo de servidor public y cada usuario de base de datos pertenece al rol de base de datos public. Cuando a un usuario o inicio de sesión no se le han concedido ni denegado permisos concretos para un elemento protegible, hereda los permisos para ese elemento concedidos a public. El rol fijo de servidor public y el de base de datos public no pueden quitarse. Sin embargo, puede revocar los permisos de los roles public. Hay muchos de los permisos que se asignan a los roles public de forma predeterminada. La mayoría de estos permisos son necesarios para realizar operaciones rutinarias en la base de datos; el tipo de tareas que todo el mundo debe poder hacer. Tenga cuidado al revocar permisos desde el usuario o el inicio de sesión público, ya que afectará a todos los inicios de sesión y usuarios. Normalmente, no debe denegar permisos a public, ya que la instrucción deny invalida cualquier instrucción grant que podrían crear para los usuarios.

INFORMATION_SCHEMA, y usuarios y esquemas sys

Todas las bases de datos incluyen dos entidades que aparecen como usuarios en las vistas de catálogo:INFORMATION_SCHEMA y sys. Estas entidades son necesarias para uso interno por parte del motor de base de datos. No se pueden modificar ni quitar.

Inicios de sesión de SQL Server basados en certificados

Las entidades de seguridad de servidor con nombres incluidos entre signos de número dobles (##) son exclusivamente para uso interno del sistema. Las siguientes entidades de seguridad se crean a partir de certificados cuando se instala SQL Server, y no deben eliminarse.

  • ##MS_SQLResourceSigningCertificate##
  • ##MS_SQLReplicationSigningCertificate##
  • ##MS_SQLAuthenticatorCertificate##
  • ##MS_AgentSigningCertificate##
  • ##MS_PolicyEventProcessingLogin##
  • ##MS_PolicySigningCertificate##
  • ##MS_PolicyTsqlExecutionLogin##

Estas cuentas principales no tienen contraseñas que los administradores puedan cambiar, ya que se basan en certificados emitidos a Microsoft.

Usuario guest

Cada base de datos incluye un usuario guest. Los permisos concedidos al usuario guest se aplican a todos los usuarios que tienen acceso a la base de datos, pero no disponen de una cuenta en la base de datos. No se puede quitar el usuario guest, pero se puede deshabilitar si se revoca su permiso CONNECT. El permiso CONNECT se puede revocar si se ejecuta REVOKE CONNECT FROM GUEST; en cualquier base de datos que no sea master ni tempdb.

Para más información acerca de cómo diseñar un sistema de permisos, consulte Getting Started with Database Engine Permissions.

Los siguientes temas están incluidos en esta sección de SQL Server Books Online:

Consulte también

Proteger SQL Server
sys.database_principals (Transact-SQL)
sys.server_principals (Transact-SQL)
sys.sql_logins (Transact-SQL)
sys.database_role_members (Transact-SQL)
Roles de nivel de servidor
Roles de nivel de base de datos