Compartir a través de


Funciones de servidor y base de datos en SQL Server (ADO.NET)

Actualización: November 2007

Todas las versiones de SQL Server usan la seguridad basada en funciones, que permite asignar permisos a una función, o grupo de usuarios, en lugar de asignarlos a usuarios individuales. Las funciones fijas de servidor y base de datos cuentan con un conjunto fijo de permisos asignados.

Funciones fijas de servidor

Las funciones fijas de servidor cuentan con un conjunto fijo de permisos y ámbito de servidor. Están pensadas para su uso en la administración de SQL Server y los permisos asignadas a ellas no se pueden modificar. Se pueden asignar inicios de sesión a las funciones fijas de servidor sin necesidad de disponer de una cuenta de usuario en una base de datos.

Nota de seguridad:

La función fija de servidor sysadmin incluye a todas las demás funciones y cuenta con un ámbito ilimitado. No agregue entidades de seguridad a esta función a menos que sean de total confianza. Los miembros de la función sysadmin disponen de permisos administrativos irrevocables en todas las bases de datos y recursos del servidor.

Sea selectivo a la hora de agregar usuarios a las funciones fijas de servidor. Por ejemplo, la función bulkadmin permite a los usuarios insertar el contenido de cualquier archivo local en una tabla, lo que puede poner en peligro la integridad de los datos. Para consultar la lista completa de permisos y funciones fijas de servidor, vea los Libros en pantalla de SQL Server 2005. Las funciones fijas de servidor de SQL Server 2000 utilizan los mismos nombres y los conjuntos de permisos según corresponde en SQL Server 2000.

Funciones fijas de base de datos

Las funciones fijas de base de datos incluyen un conjunto predefinido de permisos diseñados para permitir administrar grupos de permisos con facilidad. Los miembros de la función db_owner pueden realizar todas las actividades de configuración y mantenimiento de la base de datos.

Para obtener más información sobre las funciones predefinidas en SQL Server, vea los siguientes recursos.

Recurso

Descripción

Funciones de nivel de servidor y Permisos de las funciones fijas de servidor en los Libros en pantalla de SQL Server 2005

Describe las funciones fijas de servidor y los permisos asociados a ellas en SQL Server 2005.

Funciones en el nivel de base de datos y Permisos de las funciones fijas de base de datos en los Libros en pantalla de SQL Server 2005

Describe las funciones fijas de base de datos y los permisos asociados a ellas.

Agregar un miembro a una función predefinida, en los Libros en pantalla de SQL Server 2000

Describe los permisos asociados a las funciones fijas de servidor y base de datos, y muestra cómo agregar miembros a las funciones.

Funciones y usuarios de base de datos

Para trabajar con objetos de base de datos, se deben asignar inicios de sesión a cuentas de usuario de base de datos. Estos usuarios de base de datos se podrán agregar entonces a funciones de base de datos y heredarán los conjuntos de permisos asociados con estas funciones. A partir de SQL Server 2005, se pueden conceder todos los permisos.

A la hora de diseñar la seguridad para la aplicación, también debe tener en cuenta la función public, la cuenta de usuario dbo y la cuenta guest.

Función public

La función public está contenida en todas las bases de datos, incluidas las bases de datos del sistema. No se puede eliminar y no se pueden agregar ni quitar usuarios de ella. Todos los usuarios y las demás funciones heredan los permisos concedidos a la función public, ya que pertenecen de forma predeterminada a la función public. Por tanto, sólo debe conceder a la función public los permisos que desee que tengan todos los usuarios.

Cuenta de usuario dbo

dbo, o propietario de base de datos, es una cuenta de usuario con permisos implícitos para realizar todas las actividades en la base de datos. Los miembros de la función fija del servidor sysadmin se asignan automáticamente a dbo.

Nota:

A partir de SQL Server 2005, dbo es también el nombre de un esquema, como se explica en Propiedad y separación usuario-esquema en SQL Server (ADO.NET).

La cuenta de usuario dbo se confunde a menudo con la función fija de base de datos db_owner. El ámbito de db_owner es una base de datos y el ámbito de sysadmin es el servidor completo. La pertenencia a la función db_owner no proporciona privilegios de usuario dbo.

Cuenta de usuario guest

Después de que un usuario se haya autenticado y se le haya permitido iniciar sesión en una instancia de SQL Server, debe existir una cuenta de usuario independiente en cada base de datos a la que tenga acceso el usuario. Si se exige una cuenta de usuario en cada base de datos, se impide que los usuarios se conecten a una instancia de SQL Server y puedan tener acceso a todas las bases de datos de un servidor. La existencia de una cuenta de usuario guest en la base de datos evita este requisito, ya que permite que un inicio de sesión sin cuenta de usuario de base de datos tenga acceso a una base de datos.

La cuenta guest es una cuenta integrada en todas las versiones de SQL Server. De forma predeterminada, está deshabilitada en las bases de datos nuevas. Si está habilitada, se puede deshabilitar mediante la revocación de su permiso CONNECT, que se lleva a cabo con la ejecución de la instrucción REVOKE CONNECT FROM GUEST de Transact-SQL. En SQL Server 2000 se puede deshabilitar mediante la ejecución de los procedimientos almacenados sp_dropuser o sp_revokedbaccess de Transact-SQL.

Nota de seguridad:

Se debe evitar el uso de la cuenta guest, ya que todos los inicios de sesión que no dispongan de permisos de base de datos propios obtendrán los permisos de base de datos concedidos a esta cuenta. Si debe usar la cuenta guest, concédale los permisos mínimos.

Para obtener más información sobre los inicios de sesión, los usuarios y las funciones de SQL Server, vea los siguientes recursos.

Recurso

Descripción

Identidad y control de acceso en los Libros en pantalla de SQL Server 2008

Contiene vínculos a temas que describen las entidades de seguridad, las funciones, las credenciales, los elementos que pueden protegerse y los permisos.

Entidades de seguridad en los Libros en pantalla de SQL Server 2005

Describe las entidades de seguridad y contiene vínculos a temas que describen las funciones de servidor y de base de datos.

Creating Security Accounts y Managing Security Accounts en los Libros en pantalla de SQL Server 2000

Describe cómo se crean y se administran los inicios de sesión, los usuarios y las funciones.

Vea también

Conceptos

Escenarios de seguridad de aplicaciones en SQL Server (ADO.NET)

Autenticación en SQL Server (ADO.NET)

Propiedad y separación usuario-esquema en SQL Server (ADO.NET)

Autorización y permisos en SQL Server (ADO.NET)

Otros recursos

Proteger aplicaciones de ADO.NET