Esta lista de comprobación le ayuda a revisar cómo limita el acceso a los datos de la organización. Use esta lista de comprobación para auditar periódicamente la forma en la que los usuarios obtienen acceso a la información almacenada en SQL Server Database Engine (Motor de base de datos de SQL Server).
Acceso a la instancia de SQL Server
Estos elementos están relacionados con la instancia completa de Motor de base de datos.
.gif) |
- ¿Ha concedido acceso a la mayoría de los inicios de sesión a través de los grupos de Windows?
Sugerencia Si configura el acceso a Motor de base de datos mediante los grupos de Windows, el administrador lo puede administrar y mantener con más facilidad. Para obtener más información sobre inicios de sesión, vea Entidades de seguridad (motor de base de datos).
|
.gif) |
- ¿Se han quitado los inicios de sesión innecesarios u obsoletos de Motor de base de datos?
Sugerencia Esto quizá requiera revisiones manuales periódicas. Si habilita el acceso principalmente a través de los grupos de Windows, esta tarea puede ser más fácil.
|
.gif) |
- ¿Ha implementado el principio de privilegios mínimos?
Sugerencia A las entidades de seguridad (inicios de sesión, usuarios y roles) solo se les debe conceder permisos a los objetos de base de datos a los que deben tener acceso para realizar su trabajo. No permita que los usuarios habituales se conecten mediante una cuenta de administrador, como sa. No permita que su página web, aplicación personalizada o paquete de SSIS se conecten mediante una cuenta de administrador.
|
.gif) |
- Para ver los metadatos del sistema sin conceder permisos adicionales, ¿ha concedido el permiso VIEW DEFINITION selectivamente en el nivel de objeto, esquema, base de datos o servidor?
Sugerencia Para obtener más información, vea GRANT (Transact-SQL).
|
.gif) |
- ¿Ha reemplazado los servidores remotos por servidores vinculados?
Sugerencia Para obtener más información, vea Configurar servidores remotos y Vincular servidores.
|
.gif) |
- ¿Dispone de delegación limitada si es necesaria la autenticación de paso a través a un servidor vinculado?
Sugerencia Para obtener más información, vea sp_addlinkedsrvlogin (Transact-SQL).
|
.gif) |
- ¿Ha deshabilitado las consultas ad hoc a través de los servidores, a menos que sean necesarias?
Sugerencia Para obtener más información, vea consultas distribuidas ad hoc (opción).
|
Administrar la identidad del usuario
Estos elementos se relacionan con la configuración de cada base de datos.
.gif) |
- ¿La cuenta de usuario invitado está deshabilitada en todas las bases de datos a menos que se requiera para usuarios anónimos?
Sugerencia Deshabilite las cuentas usando SQL Server Management Studio o Transact-SQL.
|
.gif) |
- ¿Los usuarios solo tienen acceso a las bases de datos necesarias?
Sugerencia Esto quizá requiera revisiones manuales periódicas. Si habilita el acceso principalmente a través de los roles de SQL Server, esta tarea puede ser más fácil. Para obtener más información, vea Roles de nivel de servidor.
|
.gif) |
- ¿A la mayoría de los usuarios se les ha concedido acceso a través de roles de SQL Server?
Sugerencia Si configura el acceso mediante roles de servidor y de base de datos, el mantenimiento del acceso es más fácil. Para obtener información sobre roles, vea Roles de nivel de base de datos.
|
.gif) |
- ¿El Agente de SQL Server usa credenciales para ejecutar pasos de trabajo que requieran privilegios específicos en vez de ajustar los privilegios de la cuenta de servicio del Agente de SQL Server?
Sugerencia Para obtener más información, vea Credenciales (motor de base de datos).
|
.gif) |
- Si un usuario del Agente de SQL Server debe ejecutar un trabajo que requiera diferentes credenciales de Windows, ¿le ha asignado una cuenta de proxy con los permisos suficientes para realizar la tarea?
Sugerencia Para obtener más información, vea Cómo crear un proxy (SQL Server Management Studio).
|
.gif) |
- ¿Encapsula el acceso a objetos de base de datos en módulos como procedimientos almacenados, funciones, desencadenadores o ensamblados?
Sugerencia: Si limita el acceso a módulos predefinidos, le resultará más difícil a un usuario malintencionado ejecutar código arbitrario. Para obtener más información, vea Descripción de los procedimientos almacenados.
|
.gif) |
- En los módulos, ¿ha establecido explícitamente un contexto de ejecución en vez de usar el contexto predeterminado?
Sugerencia Para obtener más información, vea Usar EXECUTE AS en módulos.
|
.gif) |
- ¿Los módulos están firmados para impedir alteraciones?
Sugerencia Para obtener más información, vea Firma de módulos (Motor de base de datos).
|
.gif) |
- ¿Usa USER WITHOUT LOGIN en vez de los roles de aplicación?
Sugerencia Para obtener más información, vea Prácticas recomendadas de seguridad de SQL Server 2005: Tareas operativas y administrativas.
|
.gif) |
- ¿Usa EXECUTE AS en vez de SETUSER?
Sugerencia Para obtener más información, vea EXECUTE AS frente a SETUSER.
|
.gif) |
- ¿Ha reemplazado roles de aplicación por EXECUTE AS?
Sugerencia Use EXECUTE AS … WITH NO REVERT siempre que sea posible. Use la opción EXECUTE AS … WITH COOKIE cuando se aniden cambios de identidad. Para obtener más información, vea EXECUTE AS (Transact-SQL).
|
Acceso a objetos
Estos elementos están relacionados con el acceso a objetos de base de datos.
.gif) |
- ¿A los roles público de servidor y de base de datos se les han concedido pocos permisos (si acaso)?
Sugerencia Todos los inicios de sesión y los usuarios son miembros de los roles públicos y no se pueden quitar. Estos roles deben tener permisos muy limitados.
|
.gif) |
- ¿Los objetos de base de datos similares están agrupados en el mismo esquema?
Sugerencia Cree esquemas basándose en los requisitos empresariales. Use estos esquemas personalizados en vez del esquema dbo. Para obtener más información, vea Esquemas (motor de base de datos).
|
.gif) |
- ¿Administra la seguridad de los objetos de base de datos estableciendo la propiedad y los permisos en el nivel de esquema?
Sugerencia Para obtener más información, vea GRANT (permisos de esquema de Transact-SQL).
|
.gif) |
- ¿Dispone de propietarios distintos para los esquemas en vez de que dbo posea todos los esquemas?
Sugerencia Cuando todos los esquemas tienen el mismo propietario, el encadenamiento de propiedad puede omitir las comprobaciones de permisos necesarias. Para obtener más información, vea Cadenas de propiedad.
|
.gif) |
- ¿Usa la firma de código del código de procedimiento si se requieren privilegios adicionales para el procedimiento?
Sugerencia Para obtener más información, vea Firma de módulos (Motor de base de datos).
|
.gif) |
- ¿La opción de base de datos TRUSTWORTHY está establecida en OFF?
Sugerencia Cuando se establece en ON, los módulos de la base de datos (como, las funciones definidas por el usuario o los procedimientos almacenados) que usan un contexto de suplantación pueden obtener acceso a los recursos fuera de la base de datos. Use la instrucción ALTER DATABASE con el fin de cambiar la configuración de TRUSTWORTHY. Para obtener más información, vea Propiedad de base de datos TRUSTWORTHY.
|
.gif) |
- ¿Los módulos toman las medidas necesarias para evitar la inyección de código SQL?
Sugerencia: Para obtener más información, vea Inyección de código SQL.
|
.gif) |
- Si se permite el acceso ad-hoc a la base de datos, en vez de encapsular el acceso en los módulos, ¿las aplicaciones toman las medidas para evitar la inyección de código SQL?
Sugerencia Para obtener más información, vea los siguientes vínculos.
|
Vea también
Conceptos
Otros recursos