Sei sulla pagina 1di 12

SQL Server 2005

Definiciones previas
Ing. Edwin O. Ramos Velsquez
Carrera Profesional de Ingeniera de Sistemas
Universidad Nacional Jos Mara Arguedas
Andahuaylas Apurmac Per
Setiembre de 2010

AUTENTICACIN EN SQL
SERVER
Ing. Edwin Ramos Velsquez

ENTIDADES DE SEGURIDAD
Las entidades de seguridad son entidades que pueden solicitar recursos de SQL Server. Igual que otros componentes
del modelo de autorizacin de SQL Server, las entidades de seguridad se pueden organizar en jerarquas. El mbito de
influencia de una entidad de seguridad depende del mbito de su definicin:
Windows,
Servidor o
Base de datos;
y de si la entidad de seguridad es indivisible o es una coleccin. Un Inicio de sesin de Windows es un ejemplo de
entidad de seguridad indivisible y un Grupo de Windows es un ejemplo de una del tipo coleccin. Toda entidad de
seguridad tiene un identificador de seguridad (SID).
Entidades de seguridad a nivel de Windows
Inicio de sesin del dominio de Windows
Inicio de sesin local de Windows
Entidad de seguridad de SQL Server
Inicio de sesin de SQL Server
Entidades de seguridad a nivel de bases de datos
Usuario de base de datos
Funcin de base de datos
Funcin de aplicacin

Ing. Edwin Ramos Velsquez

Microsoft SQL Server es un


servidor de Bases de datos
Administrador corporativo
SQL Server.exe
ServerName = Miservidor01
DataBaseName= MiBase
UserName = Pepito
Password = 123

Mi Aplicacin.exe
ServerName = ServerDog
DataBaseName= BaseVentas
UserName = Jorgito
Password = 6784

Microsoft SQL Server


Management Studio

Sistema Operativo

Usuarios 1
(Autenticacin
SQL Server)

Usuarios
(Control de
usuarios S. O.)

Usuarios 2
(Autenticacin
Windows)

MiServidor01

Usuarios 1
(Autenticacin
SQL Server)

Usuarios 2
(Autenticacin
Windows)

ServerDog

ServerName = ServerDog
DataBaseName= BaseVentas
UserName = Jorgito
Password = 6784

Clientes

Estacin de trabajo con dos servidores de


bases de datos registrados
Ing. Edwin Ramos Velsquez

Visual Basic.exe
ServerName = ServerDog
DataBaseName= BaseMatricula
UserName = Alvarito
Password = 2587

Borland BDE.exe
ServerName = MiServidor01
DataBaseName= BaseColegio
UserName = Pepito
Password = 123

Clientes
4

ROLES EN EL SERVIDOR MS Sql server




Para administrar con facilidad los permisos en el servidor, SQL Server proporciona varios roles, que son
las entidades de seguridad que agrupan a otras entidades de seguridad. Los roles son como los grupos del
sistema operativo Microsoft Windows.
Los roles de nivel de servidor tambin se denominan roles fijos de servidor porque no se pueden crear
nuevos roles de nivel de servidor. Los roles de nivel de servidor se aplican a todo el servidor en lo que
respecta a su mbito de permisos.

Sysadmin: Los miembros del rol fijo de servidor sysadmin pueden realizar cualquier actividad en el servidor.
Serveradmin: Los miembros del rol fijo de servidor serveradmin pueden cambiar las opciones de configuracin en el
servidor y cerrar el servidor.
Securityadmin: Los miembros del rol fijo de servidor securityadmin administran los inicios de sesin y sus
propiedades. Administran los permisos de servidor GRANT, DENY y REVOKE. Tambin administran los permisos de
base de datos GRANT, DENY y REVOKE. Asimismo, pueden restablecer las contraseas para los inicios de sesin de
SQL Server.
Processadmin: Los miembros del rol fijo de servidor processadmin pueden finalizar los procesos que se ejecutan en
una instancia de SQL Server.
Setupadmin: Los miembros del rol fijo de servidor setupadmin pueden agregar y quitar los servidores vinculados.
Bulkadmin: Los miembros del rol fijo de servidor bulkadmin pueden ejecutar la instruccin BULK INSERT.
Diskadmin: El rol fijo de servidor diskadmin se utiliza para administrar archivos de disco.
Dbcreator: Los miembros del rol fijo de servidor dbcreator pueden crear, modificar, quitar y restaurar cualquier base de
datos.
Public: Cada inicio de sesin de SQL Server pertenece al rol pblico de servidor. Cuando a una entidad de seguridad de
servidor no se le han concedido ni denegado permisos especficos para un objeto protegible, el usuario hereda los
permisos concedidos al rol pblica para ese elemento
Ing. Edwin Ramos Velsquez

Entidades SQL
 Todas las entidades tienen un nombre nico

(No existen objetos con nombre duplicado)


Procedimientos almacenados (Store Procedure)
Funciones (Function)
Vistas (View)
Disparadores (Triggers)
Usuarios (User)
Bases de Datos (Database)
Reglas de validacin (Relation uno a muchos, etc..)
Proc. Almac.

Tablas

Vistas

sp_Proced1

Alumno

cs_Alumno

sp_Proced2

Notas

cs_Notas

Base de Datos MyBase.MDF

Ing. Edwin Ramos Velsquez

ESQUEMAS EN SQL SERVER


2005
Ing. Edwin Ramos Velsquez

ESQUEMAS



SQL Server al igual que los DBMSs ms comunes en el mercado utiliza el concepto de
esquema para definir un dominio de nombres nicos de objeto.
A modo de ejemplo, en una base SQL Server no es posible tener 2 tablas de nombre
cliente dentro de un esquema de nombre sueldos_desarrollo. Pero si podra tener dentro
de la misma base la tabla cliente en el esquema sueldos_desarrollo y la tabla cliente en
el esquema sueldos_testing.

Store
Procedures

Tablas

sp_Proced1

Alumno

cs_Alumno

sp_Proced2

Notas

cs_Notas

sp_Proced1

Alumno

cs_Alumno

sp_Proced2

Notas

cs_Notas

Base de Datos
Matricula.MDF

Vistas

Esquema_Alumnos

Esquema_Matricula

Ing. Edwin Ramos Velsquez

CREATE SCHEMA
EJEMPLO DE CREACION DE UN ESQUEMA
En el ejemplo siguiente se crea el esquema Ventas2008, que es propiedad de Pedrito y contiene la tabla Alumnos. La
instruccin concede el permiso SELECT a Mandar y deniega el permiso SELECT a Prasanna. Tenga en cuenta que Ventas2008
y Alumnos se crean en una sola instruccin.
USE AdventureWorks;
CREATE SCHEMA Ventas2008 AUTHORIZATION Pedrito
CREATE TABLE Alumnos (IDAlumno int, Nombre Varchar(30),Ciclo int)
GRANT SELECT TO Mandar
DENY SELECT TO Prasanna;
GO

Ing. Edwin Ramos Velsquez

ALTER SCHEMA
ALTER SCHEMA slo se puede utilizar para mover objetos entre esquemas en la misma base de datos. Para
cambiar o quitar un objeto de un esquema, use la instruccin ALTER o DROP especfica para ese objeto.
Si se usa un nombre de una parte para object_name, se usarn las reglas de resolucin de nombres actualmente
vigentes para localizar el objeto.

En el siguiente ejemplo se modifica el esquema HumanResources transfiriendo la tabla Address del esquema
Person al esquema.
USE AdventureWorks;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO

Ing. Edwin Ramos Velsquez

10

SEPARACION USUARIO ESQUEMA


EN SQL SERVER
En SQL Server 2000 el usuario y el esquema estn implcitamente relacionados. Al crear un
usuario se crea automticamente un esquema y un esquema no existe sin su usuario asociado.
Este diseo es simple pero tiene algunas desventajas:
Limita la independencia que deberan tener los desarrolladores para trabajar libremente con los
objetos de un esquema y los DBAs para administrar la seguridad del usuario asociado
El nombre del esquema puede resultar poco amigable y no refleja la realidad ya que este
nombre coincide con el nombre del usuario asociado al esquema.

En SQL Server 2005 este diseo cambia, independizndose el usuario del esquema. Al crear un
usuario no se crea un esquema asociado y los esquemas de una base de datos se crean sin
asociarse a un usuario. Este diseo tiene algunas ventajas sobre el anterior:
Para eliminar un usuario ya no es necesario eliminar previamente todos los objetos del
esquema asociado (pues simplemente no hay esquema asociado)
Se puede renombrar un usuario sin tener que renombrar el esquema, lo cual poda implicar un
cambio en las aplicaciones que accedan a tablas de dicho esquema
Cuando se tenan varios usuarios en una base de datos, al tener cada uno su propio esquema
se corra el riesgo de que un usuario creara tablas u otros objetos en su esquema para el caso
en que lo deseable fuera concentrar todas las tablas en un nico esquema
El nombre de un esquema no tiene porque coincidir con el nombre de un usuario
Ing. Edwin Ramos Velsquez

11

Hasta SQL Server 2000, el nombre completo de un objeto toma la forma de :


servidor_instancia.base_de_datos.propietario.objeto,
Mientras que a partir de SQL Server 2005 el nombre completo de un objeto pasa a ser:
servidor_instancia.base_de_datos.esquema.objeto.

Esquema: la solucin de un problema de nombres nicos


Aqu, ya tenemos un problema potencial de resolucin de nombres. Hay que tener en cuenta, que un usuario
pepe, puede tener otra tabla TBL_DIVISAS. El nombre sigue siendo nico, es decir, un objeto ser
juan.TBL_DIVISAS y el otro ser pepe.TBL_DIVISAS. Es decir, distintos usuarios (propietarios) pueden
tener objetos con el mismo nombre en la misma base de datos. Esto no es un gran problema, pero si no lo
tenemos presente, en alguna ocasin nos podremos dar algn pequeo susto, por esta pequea confusin.
En SQL Server 2005 Se usan Esquemas, y no usuarios para el conflicto de nombres
Ahora vamos a hablar de cmo es a partir de SQL Server 2005. Los esquemas (schemas) son objetos de base de
datos que facilitan la resolucin de nombres, es decir, los esquemas facilitan un espacio de nombres
(namespace). Con esto, ahora podemos eliminar un usuario sin que impacte en las aplicaciones y consultas
existentes, puesto que la eliminacin de un usuario (una cuestin de seguridad) no implica la eliminacin del
esquema (una cuestin de resolucin de nombres). Es evidente, que todo objeto de base de datos (ej: tabla,
vista, procedimiento almacenado, etc.) tiene asociado uno y slo un esquema. Adems, todo usuario tiene
asignado un esquema por defecto (default schema),
Ing. Edwin Ramos Velsquez

12

Potrebbero piacerti anche