Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
Mi Aplicacin.exe
ServerName = ServerDog
DataBaseName= BaseVentas
UserName = Jorgito
Password = 6784
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
Visual Basic.exe
ServerName = ServerDog
DataBaseName= BaseMatricula
UserName = Alvarito
Password = 2587
Borland BDE.exe
ServerName = MiServidor01
DataBaseName= BaseColegio
UserName = Pepito
Password = 123
Clientes
4
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
Tablas
Vistas
sp_Proced1
Alumno
cs_Alumno
sp_Proced2
Notas
cs_Notas
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
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
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
10
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
12