Gestión de la seguridad
Aquí se describen las técnicas y mecanismos para implementar los mecanismos de seguridad.
Administración de la seguridad con SQL Server 1ª Parte
Identificadores de inicio de sesión: Creación
Crear inicios de sesión, sólo será necesario si vamos a utilizar autenticación de SQL Server. Cuando se añade el nuevo usuario, SQL Server escribe una nueva fila en la tabla syslogins de la base de datos master. Esta tarea puede llevarse a cabo utilizando comandos SQL o a través del Administrador Corporativo.
Creación de identificadores mediante el Administrador Corporativo
Para añadir un identificador de inicio de sesión desde el Administrador Corporativo, seleccionamos la carpeta seguridad y dentro de esta, inicios de sesión que deseemos crearlo, y pulsamos botón derecho del ratón y elegimos Nuevo inicio de sesión.
A continuación, especificamos la información de autenticación del identificador a crear.
La primera página de este cuadro de diálogo multipágina nos permite rellenar los siguientes datos:
- Nombre del identificador.
- Tipo de autenticación: Debe marcarse autenticación de SQL Server.
- La contraseña para el identificador.
- La base de datos por defecto para el identificador, en la que se colocará por defecto al usuario.
- El idioma predeterminado para el inicio de sesión.
- Nombre del identificador.
- Tipo de autenticación: Debe marcarse autenticación de SQL Server.
- La contraseña para el identificador.
- La base de datos por defecto para el identificador, en la que se colocará por defecto al usuario.
- El idioma predeterminado para el inicio de sesión.
En la segunda página, Roles del servidor permite especificar en qué funciones de servidor preestablecidas se incluirá el identificador de inicio de sesión que va a crearse.
En la página Asignación de usuarios, podremos indicar a qué bases de datos tendrá acceso el identificador de inicio de sesión y al usuario de bases de datos a la que se asociará.
La siguiente pestaña es la de elementos protegibles, aquí podemos dar o denegar
Finalmente en la carpeta Estado podemos conceder o denegar permiso de conexión al motor de base de datos y habilitar o deshabilitar el inicio de sesión.
Creación de inicios de sesión a través de comandos
Podemos crear inicios de sesión ejecutando el procedimiento almacenado sp_addlogin.
sp_addlogin identificador [, contraseña [, password [, base de datos por defecto, [, lenguaje [, id numérico [, opción de encriptación ]]]]]]
Algunas consideraciones sobre este procedimiento almacenado.
- Puede omitirse la contraseña.
- Si no se especifica la base de datos por defecto, se considerará la master como tal.
- El identificador numérico tiene sentido cuando existe un usuario en la tabla sysusers de una base de datos cuyo id apunte a un identificador de inicio de sesión inexistente, desee crear un nuevo inicio de sesión con el id del usuario de base de datos en cuestión.
- El parámetro opción de encriptación permite especificar si la contraseña se almacena o no encriptada. Si se omite, la contraseña se encriptará. Si ponemos como parámetro skip_encription, la contraseña no se encriptará.
Identificadores de inicio de sesión: Modificación y eliminación
Mediante el Administrador Corporativo
Para modificar las propiedades de un identificador de inicio de sesión desde el Administrador Corporativo, seleccionamos el inicio de sesión y con el botón derecho del ratón elegimos propiedades.
Esto nos abre de nuevo las pantallas explicadas anteriormente con lo que podemos modificar los parámetros elegidos. Si elegimos eliminar eliminaremos el inicio de sesión.
Modificación y eliminación de inicios de sesión a través de comandos SQL
La información de configuración de un identificador de inicio de sesión puede modificarse con los siguientes procedimientos almacenados.
Base de datos por defecto: sp_defaultdb
Facilita al sistema el nombre de la base de datos a la que un identificador de inicio de sesión accederá al entrar en el sistema.
La sintaxis de uso es:
sp_defaultdb nombre de usuario, base de datos
Idioma por defecto: sp_defaultlanguage
Este procedimiento almacenado facilita al sistema el lenguaje con el que el identificador accederá al iniciar una sesión en el sistema. Su sintaxis es:
sp_defaultlanguage ‘nombre de usuario’ [, ‘lenguaje’]
Cambio de contraseña: sp_password
Este procedimiento almacenado permite cambiar la contraseña de acceso al servidor de un identificador de inicio de sesión.
La sintaxis de uso es:
sp_password ‘contraseña antigua’, ‘contraseña nueva’, [,’usuario’]
Para eliminar un identificador de acceso utilizaremos el procedimiento almacenado sp_droplogin. La ejecución del procedimiento eliminará la línea correspondiente al identificador, en la tabla syslogins. Sólo el administrador del sistema puede ejecutar este procedimiento almacenado.
sp_droplogin nombre de usuario
Usuarios de bases de datos: Creación de usuarios de bases de datos
Crear usuarios de bases de datos significa, en realidad, habilitar identificadores de inicio de sesión para su acceso a una o varias bases de datos.
En función del modo de autenticación del usuario, esto significa habilitar el acceso a una cuenta o grupo de Windows o a un identificador de acceso de SQL Server.
A través del Administrador Corporativo
Posicionados sobre la base de datos, abrimos la carpeta seguridad y debajo de esta aparece la de usuarios, sobre esta carpeta botón derecho del ratón Nuevo usuario.
Esto abre un cuadro de diálogo con varias pestañas. En la primera podremos especificar:
- Tipo de Usuario, a escoger entre los que ya están dados de alta para el acceso al servidor.
- Nombre de usuario. El nombre que deseamos asignar al usuario en la base de datos.
- Nombre de inicio de sesión. Que debe elegir entre los que ya estén creados
- Esquema predeterminado. También se elegirá entre los ya creados.
En el resto de pestañas podemos elegir las funciones de la base de datos para las que se da acceso o a las que se desea que pertenezca.
Añadiendo usuarios mediante comandos SQL
El procedimiento almacenado de SQL Server permite habilitar a un identificador de acceso o a una cuenta Windows para su acceso a una base de datos:
sp_grantdbaccess o sp_adduser.
sp_grantdbaccess id inicio sesión [,’nombre de usuario’]
id inicio sesión es un identificador de inicio de SQL Server o una cuenta de Windows. Si se omite el nombre de usuario, el usuario en la base de datos utilizará la misma denominación que el identificador de inicio de sesión.
Eliminación de usuarios mediante el Administrador Corporativo
Para eliminar un usuario en el Administrador Corporativo basta con hacer clic en el botón derecho del ratón situados encima del usuario y eliminar.
Eliminación de usuarios mediante comandos
Para ello se utiliza el método sp_revokedbaccess que elimina un usuario de una base de datos.
sp_revokedbaccess 'usuario'
No pueden eliminarse los usuarios dbo ni el information_schema ni el guest en la base de datos master ni tempdb.
Obteniendo información sobre usuarios
Es posible obtener información sobre los usuarios existentes en una base de datos mediante el procedimiento almacenado sp_helpuser.
sp_helpuser [ ‘nombre de usuario’ ]
Si se omite el nombre del usuario se obtendrá información sobre todos los usuarios de la base de datos.
Roles de base de datos (database roles)
Es posible agrupar a los usuarios para otorgarles conjuntamente permisos de acceso a base de datos utilizando los Roles de base de datos. Un rol de base de datos representa un tipo de usuarios, desde el punto de vista de las labores que pueden realizar, al que se asignarán los permisos necesarios para llevar a cabo esa tarea.
Este Procedimiento simplifica la gestión al administrador de los aspectos de seguridad, pues permite otorgar conjuntamente permisos a usuarios de perfil similar. Lo más lógico es crear primero los roles de base de datos, y añadir posteriormente los usuarios particulares que se adapten a ese grupo. Existen roles de bases de datos predefinidos.
Gestión de roles de bases de datos: Mediante el Administrador Corporativo
En el Administrador Corporativo, para crear un rol de base a datos de usuario deberemos acceder a la base de datos en cuestión y desplegando la carpeta Seguridad y debajo de ella nos colocamos en la carpeta Roles y con el botón derecho del ratón elegimos Nuevo, esto nos da la opción de elegir entre nuevo rol de base de datos o de aplicación. Elegimos rol de base de datos.
Esto nos abre un cuadro de diálogo con tres pestañas.
En el cuadro de diálogo podremos especificar
El nombre del rol, el propietario y los esquemas propiedad del rol.
En las otras pestañas al igual que hicimos anteriormente podemos elegir los elementos de la base de datos a los que se proporcionan permisos. Los esquemas a los que pertenecen, y el tipo de permiso que se proporciona.
Creación de Roles de bases de datos mediante comandos SQL
El procedimiento almacenado que permite añadir un nuevo rol una base de datos es sp_addrole.
sp_addrole 'nombre de rol’ [ 'propietario']
El parámetro propietario permite especificar el usuario de la base de datos propietaria del rol que podrá, por tanto, modificarla. Por defecto será dbo.
sp_addrole 'db_owner’
Adición de usuarios a un rol de servidor
El procedimiento almacenado que permite añadir usuarios a un rol de base de datos es sp_addrolemember:
sp_addrolemember 'nombre función' [, id de inicio de sesión]
Un ejemplo de uso: sp_addrolemember 'Especialistas', 'Conchi'
Información sobre las funciones existentes
Es posible obtener información sobre los roles existentes mediante el procedimiento almacenado sp_helprole.
sp_helprole [ nombre de función ]
No hay comentarios:
Publicar un comentario