Sunteți pe pagina 1din 10

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

Seguridad en SQL Server


Presentacin del Caso a Estudiar
Microsoft SQL Server dispone de funciones integradas para realizar ciertas operaciones rpida y fcilmente. Las categoras en que se Objetivos: dividen las funciones son: Adjuntar una Base de Datos. Instruccin Select. Definicin de filtros de filas en Select. Uso de la funcin Convert. Bsqueda basada en fecha. Uso del Operador Like. Uso del Operador BETWEEN. Uso del Operador IN. Manipulacin de Valores Null. Funciones para la manipulacin de Fechas. Funciones de conversin de tipos de datos. Prof.: Cueva Valverde Diego Alberto - Instructor en T I diegoalberto_1987@hotmail.com Captulo III Uso de Funciones Transact - SQL Funciones del Sistema. Funciones de agregado. Funciones de cursores. Funciones de fecha y hora. Funcin matemtica. Funciones de metadatos. Funciones de conjuntos de filas. Funciones de seguridad. Funciones de cadena. Funciones del sistema. Funciones de estadsticas del sistema. Funciones de texto e imagen. Creacin de un Diagrama.

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

Seguridad en SQL Server


Lo ms importante de una empresa es su informacin, es decir, su base de datos, y por lo tanto, la seguridad de esta informacin debe ser una de las principales tareas de cada una de las personas que va a desarrollar programas o sistemas para administrar esa informacin. Es muy importante que cada persona accede a una base de datos a travs de nuestros programas, tengan su propia identificacin y una cuenta de inicio de sesin a SQL Server con su respectiva contrasea, lo cual nos permitir realizar tareas de auditora, es decir, saber que hizo el usuario dentro de la base de datos y sobre todo, nos permitira asignarle permisos a cada uno de ellos. Cada una de las personas tiene asignado un inicio de sesin y una contrasea, debe utilizar estos datos para poder acceder al sistema desarrollado. Lo primero que se debe crear es la cuenta de inicio de sesin la cual se utilizada para poder ingresar a SQL Server y luego la identificacin del usuario. Por cada conexin que se realiza al SQL Server, este realiza una autenticacin que consiste en verificar si la persona que se est conectando tiene los permisos asignados o est autorizado. La autenticacin de la cuenta para ingresar a SQL Server se puede realizar desde Microsoft Windows o desde el mismo SQL Server.

SEGURIDAD
Para crear un usuario, debemos realizar los siguientes pasos: Crear el usuario asignndole una cuenta de inicio de sesin. Asignar el usuario a una base de datos y darle permiso de acceso a ella Asociar el usuario a una funcin de usuario la cul contiene unos determinados permisos para acceder a la base de datos.

Cuentas de inicio de sesin

Cuando un usuario se conecta a un servidor, lo hace a travs de una cuenta facilitada por el administrador de la base de datos. Esta cuenta tiene una serie de permisos que el administrador da, estos permisos pueden ser de restriccin a determinadas tablas, o por ejemplo que un usuario pueda solo insertar, o seleccionar en determinadas tablas.

Existen dos formas de entrar a la base de datos, bien mediante el usuario de windows nt 2000, mediante el usuario de la base de datos. Mediante el usuario de windows, facilitamos al equipo desde el que nos conectamos, los recursos del servidor de sql server, pudiendo incluso bloquear el equipo desde el que se conecta el usuario.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Uso de Funciones Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

Acceso a una base de datos

Para que un usuario tenga acceso a una base de datos, despus de crearle una cuenta de inicio de sesin, y asocirsela a una base de datos, hemos de darle permisos para que pueda acceder a esa base de datos. Posteriormente, mediante funciones le indicaremos que es lo que puede hacer en esa base de datos. Puede tener permisos para una base de datos o para todo el servidor.

Funciones

Agrupamos usuarios y sobre estos usuarios daremos permisos a ese grupo de usuarios. Las funciones de usuario, se usan para establecer los permisos que un grupo de usuario tendr sobre una determinada base de datos. Una vez creado el usuario, y asignada la base de datos, podemos asociar este usuario a la funcin que queramos para controlar los permisos que tiene sobre la base de datos asignada.

Hay una serie de funciones y usuarios predefinidos en la base de datos.

Crear un usuario

Para crear un usuario y poder usarlo, hemos de establecer todos los pasos descritos en los puntos anteriores. Estos pasos, los realizaremos todos en el analizador de consultas:

Ejemplo 155
1. Creamos el inicio de sesin del usuario.

SP_ADDLOGGIN Crea una cuenta de inicio para un usuario y lo asigna a una base de datos. Sintaxis:

SP_ADDLOGIN Usuario, Contrasea, Base de datos

EXEC SP_ADDLOGIN 'Pepe', 'Pepe','poseidon'

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Uso de Funciones Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

SP_DROPLOGIN

Borra una cuenta de inicio de un usuario, siempre y cuando el usuario no est conectado y no tenga permisos sobre ninguna base de datos (si los tiene hemos de revocarlos antes de borrar la cuenta de inicio y el usuario) Sintaxis:

SP_DROPLOGIN 'Usuario'

EXEC SP_DROPLOGIN 'Pepe'

Nota: Si el usuario tiene permisos asignados sobre una base de datos, debemos quitar primero esos permisos antes de borrarlo, ya que sino dar error al intentarlo.

Ejemplo 156
2. Asignamos permisos al usuario sobre la base de datos que queramos

SP_GRANTDBACCESS

3.

Para ello usaremos el procedimiento almacenado de sistema SP_GRANTDBACCESS. Sintaxis: SP_GRANTDBACCESS Usuario

Use poseidon GO SP_GRANTDBACCESS 'Pepe'

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Uso de Funciones Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

Si queremos revocar estos permisos al usuario, usaremos el procedimiento almacenado de sistema SP_REVOKEDBACCESS. Sintaxis: SP_REVOKEDBACCESS Usuario Es decir en este caso sera:

EXEC SP_REVOKEDBACCESS 'Pepe'

4.

Probamos el usuario creado entrando en el analizador de consulta con su login y password

Una vez en el analizador de consultas, solo tendremos acceso a la base de datos asociada al usuario y las bases de datos de ejemplo.

5.

Asociar el usuario a la funcin que queramos.

Crear Funciones (grupos de usuarios) y establecer sus permisos

EXEC SP_ADDROLE 'Becarios'

Agregada la nueva funcin.

Una vez realizado esto, vemos que en el apartado Funciones de la base de datos, est la funcin creada, si hacemos doble click sobre ella, vemos que no tiene usuarios asignados:

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Uso de Funciones Transact - SQL

Para ello crearemos la funcin mediante el procedimiento almacenado de sistema SP_ADDROLE

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005


Para establecer los permisos de la funcin que hemos creado, usaremos el comando GRANT. Sintaxis:

GRANT Permisos ON Tabla / Objeto To Funcin / Usuarios

Es decir en este caso sera:

Ejemplo 157
GRANT INSERT, UPDATE, DELETE ON clientes To Becarios

Tambin podemos establecer permisos directamente sobre los usuarios, poniendo el nombre de estos en lugar de la funcin.

Ejemplo 158
GRANT INSERT, UPDATE, DELETE ON clientes To Pepe, Pepa

Para denegar permisos sera mediante el comando DENY.

DENY Permisos On Tabla To Funcin

Ejemplo 159
DENY SELECT ON clientes TO Becarios

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Uso de Funciones Transact - SQL

Sintaxis:

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

Para revocar permisos ya asignados mediante GRANT, usaremos el comando REVOKE

REVOKE Permisos On Tabla To Funcin

Ejemplo 160
REVOKE UPDATE On clientes to Becarios

Asociar usuarios a una Funcin.

Para asociar un usuario a una funcin usaremos el procedimiento almacenado de sistema SP_ADDROLEMEBER. Sintaxis: SP_ADDROLEMEMBER Funcin, Usuario

Es decir, en este caso sera:

Ejemplo 161
EXEC SP_ADDROLEMEMBER 'Becarios', 'Pepe' 'Pepe' agregado a la funcin 'Becarios'.

Una vez realizados estos pasos, si entramos en el analizador de consultas con el usuario Pepe, si intentamos realizar una consulta no permitida, nos advertir mediante un mensaje que no podemos realizar la consulta:

Select * from clientes

Servidor: mensaje 229, nivel 14, estado 5, lnea 1

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Uso de Funciones Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005


Permiso SELECT denegado para el objeto 'clientes', base de datos 'poseidon', propietario 'dbo'.

Para eliminar un usuario de una funcin, usaremos el procedimiento almacenado de sistema SP_DROPROLEMEMBER. Sintaxis: SP_DROPROLEMEMBER Funcin, Usuario Es decir en este caso sera:

Ejemplo 162
EXEC SP_DROPROLEMEMBER 'Becarios', 'Pepe' 'Pepe' quitado de la funcin 'Becarios'.

Una vez tengamos la funcin sin usuarios asignados, podremos borrarla, para borrarla usaremos el procedimiento almacenado de sistema SP_DROPROLE. Sintaxis: SP_DROPROLE Funcin En este caso sera:

Ejemplo 163
EXEC SP_DROPROLE Becarios Funcin quitada.

SP_ADDSRVROLEMEMBER Aade a una funcin de sistema el usuario que queramos. Sintaxis: SP_ADDSRVROLEMEMBER 'Usuario','Funcion'

Damos permiso al usuario para modificar y crear bases de datos.

Ejemplo 164
EXEC SP_ADDSRVROLEMEMBER 'Pepe','DbCreator' SP_ADDSRVROLEMEMBER 'PEPE','DBCREATOR'

SP_DROPSRVROLEMEMBER Quita a un usuario de la funcin de sistema usuario que seleccionemos.

Sintaxis: SP_ADDSRVROLEMEMBER 'Usuario','Funcion'

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Uso de Funciones Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005


Quitamos de la funcin al usuario Pepe

Ejemplo 165
EXEC SP_ADDSRVROLEMEMBER 'Pepe','DbCreator' 'PEPE' quitado de la funcin 'DBCREATOR'. Otro mtodo que tenemos para poder ofrecer permisos es con la opcin With Grant Option

Con esta opcin despus de la sentencia de conceder derechos, permito al usuario al que estoy concediendo permisos pueda conceder permisos a su vez sobre los privilegios que se le han otorgado.

Sintaxis:

Grant Select, Insert, Update, Delete On Tabla / Vista To Usuario / Funcion With Grant Option

Ejemplo:

Un administrador concede permisos a Pepe para poder hacer selecciones sobre la tabla Clientes. Usuario Administrador

Ejemplo 166
Grant Select On clientes To Pepe With Grant Option

Este usuario podr a su vez conceder permisos a otro usuario sobre sus privilegios, es decir, sobre la tabla emp y solamente con Select.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

Captulo III Uso de Funciones Transact - SQL

Desarrollo de Base De Datos con Microsoft SQL SERVER 2005

Usuario Pepe

Ejemplo 167
Grant Select On Clientes To Luisa

La cadena termina aqu, ya que Pepe no ha concedido permisos a Luisa para que pueda conceder permisos a su vez. Si el administrador revocase los permisos Select a Pepe, estos permisos se revocan a su vez sobre el usuario Luisa, ya que no tiene permisos de nadie ms para ver la Tabla. Otra opcin es que el usuario Pepe conceda permisos a Luisa pero solamente sobre unos determinados campos.

Ejemplo 168
Grant Select (Emp_no, Apellido, Fecha_alt, Dept_no) On Clientes To Luisa

Esto se puede utilizar tambin pero sera ms conveniente utilizar una Vista.

Prof.: Cueva Valverde Diego Alberto - Instructor en T I

diegoalberto_1987@hotmail.com

10

Captulo III Uso de Funciones Transact - SQL

S-ar putea să vă placă și