690 likes | 931 Views
Difusión por el Web de SQL Server 2005 Parte 4: Seguridad de SQL Server 2005. Lo que vamos a cubrir:. Modelo de seguridad de SQL Server 2005 Autenticación de SQL Server 2005 Esquemas de SQL Server 2005 Contexto de la ejecución del módulo SQL Server 2005 Permisos de SQL Server 2005.
E N D
Difusión por el Web de SQL Server 2005Parte 4: Seguridad de SQL Server 2005
Lo que vamos a cubrir: • Modelo de seguridad de SQL Server 2005 • Autenticación de SQL Server 2005 • Esquemas de SQL Server 2005 • Contexto de la ejecución del módulo SQL Server 2005 • Permisos de SQL Server 2005
Conocimiento previo • Experiencia en dar soporte a los Servidores Windows 2003 • Experiencia en administrar y dar mantenimiento a SQL Server 2000 • Experiencia en administrar bases de datos Nivel 200
Agenda • Repaso • Modelo de seguridad de SQL Server 2005 • Autenticación y política de contraseña basado en punto final • Separación del esquema del usuario • Contexto de ejecución del módulo • Permisos granulares
RepasoAislamiento de la instantánea ALTER DATABASE AdventureWorks SET READ_COMMITTED_SNAPSHOT ON ALTER DATABASE AdventureWorks SET ALLOW_SNAPSHOT_ISOLATION ON SET TRANSACTION ISOLATION LEVEL SNAPSHOT
RepasoInstantáneas de la base de datos BD Fuente BD Instantánea SELECCIONAR … ACTUALIZAR … SELECCIONAR … Copiar al escribir
RepasoVistas dinámicas de administración • Vistas dinámicas de administración para bloqueos y operaciones • sys.dm_tran_locks • sys.dm_tran_active_transactions • sys.dm_tran_database_transactions • sys.dm_tran_session_transactions
Encuesta: Usted ha activado la opción ALLOW_SNAPSHOT_ISOLATION... • [Encuesta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar propiedades de la diapositiva...Para editar.] • Establecer el nivel de aislamiento a SNAPSHOT en cada sesión de cliente. • Especificar la señal de bloqueo READCOMMITTEDLOCK en sus consultas. • Especificar la instrucción BEGIN TRAN antes de todas las consultas. • Nada – el nivel predeterminado de aislamiento READ COMMITTED ahora utilizará versiones de filas en lugar de bloqueos.
RepasoAislamiento de la instantánea Usted ha activado la opción ALLOW_SNAPSHOT_ISOLATION en una base de datos. ¿Qué más debe hacer para asegurar que se utilice el aislamiento de instantánea? • Establecer el nivel de aislamiento a SNAPSHOT en cada sesión de cliente. • Especificar la señal de bloqueo READCOMMITTEDLOCK en sus consultas. • Especificar la instrucción BEGIN TRAN antes de todas las consultas. • Nada – el nivel predeterminado de aislamiento READ COMMITTED ahora utilizará versiones de filas en lugar de bloqueos.
Encuesta: ¿Cómo crea una instantánea de la base de datos? • [Encuesta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar propiedades de la diapositiva...Para editar.] • Utilizar una instrucción CREATE SNAPSHOT. • Separar la base de datos fuente, luego adjuntarla a la cláusula AS SNAPSHOT. • Respaldar la base de datos fuente, luego restaurarla con la cláusula FROM SNAPSHOT. • Ejecutar una isntrucción CREATE DATABASE con la cláusula AS SNAPSHOT OF.
RepasoInstantáneas de la base de datos ¿Cómo crea una instantánea de la base de datos? • Utilizar una instrucción CREATE SNAPSHOT. • Separar la base de datos fuente, luego adjuntarla a la cláusula AS SNAPSHOT. • Respaldar la base de datos fuente, luego restaurarla con la cláusula FROM SNAPSHOT. • Ejecutar una isntrucción CREATE DATABASE con la cláusula AS SNAPSHOT OF.
Encuesta: Cuál vista dinámica de administración puede utilizar para devolver in... • [Encuesta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar propiedades de la diapositiva...Para editar.] • sys.dm_tran_locks • sys.dm_tran_active_transactions • sys.dm_tran_database_transactions • sys.dm_tran_session_transactions
RepasoVistas dinámicas de administración ¿Cuál vista dinámica de administración puede utilizar para devolver información acerca de las operaciones en una base de datos específica? • sys.dm_tran_locks • sys.dm_tran_active_transactions • sys.dm_tran_database_transactions • sys.dm_tran_session_transactions
Agenda • Repaso • Modelo de seguridad de SQL Server 2005 • Autenticación y política de contraseña basado en punto final • Separación del esquema del usuario • Contexto de ejecución del módulo • Permisos granulares
Modelo de seguridad de SQL Server 2005Mecanismos de seguridad • Autenticación • Nombre del usuario y contraseña • Certificados • Autorización • Permisos • Criptografía • Claves simétricas • Claves asimétricas
Modelo de seguridad de SQL Server 2005Componentes de seguridad Principales • Windows • Grupos • Cuenta de dominio • Cuenta local • SQL Server • Cuenta SQL • Rol del servidor • Base de datos • Usuario • Rol de la base de datos • Rol de la aplicación • Grupo Asegurables • Enfoque del servidor • Inicios de sesión • Puntos finales • Bases de datos • Enfoque de la base de datos • Usuarios • Ensamblados • Esquemas • Enfoque del esquema • Tablas • Procedimientos • Vistas Permisos • Otorgar/revocar/rechazar • Crear • Alterar • Soltar • Controlar • Conectar • Seleccionar • Ejecutar • Actualizar • Eliminar • Insertar
Conéctese al PC de SQL Server Establezca las credenciales de inicio de sesión;Autorice contra EP Establezca un contexto de la base de datos Verifique los permisos para todas las acciones Modelo de seguridad de SQL Server 2005Proceso de acceso seguro Solicitud de conexión a la red/saludo de inicio de sesión previo Solicitud de autenticación de inicio de sesión para SQL Server Cambie a una base de datos y autorice el acceso Intente realizar una acción
Agenda • Repaso • Modelo de seguridad de SQL Server 2005 • Autenticación y política de contraseña basado en punto final • Separación del esquema del usuario • Contexto de ejecución del módulo • Permisos granulares
Autenticación y política de contraseña basadas en punto finalPuntos finales de SQL Server 2005 • Punto de entrada a una instancia de SQL Server • Configurable para múltiples transportes • Protocolo de transporte de hipertexto (HTTP) • Memoria compartida (SM) • Canalización nombrada (NP) • Protocolo del control de permisos (TCP) • Adaptador de interfaz virtual (VIA) • Vista del catálogo Sys.endpoints
Autenticación y política de contraseña basadas en punto finalConfigurar puntos finales • Todos los protocolos de transporte excepto HTTP • Punto final predeterminado creado para todos los protocolos habilitados en inicio • CONECTE los permisos asignados a los inicios de sesión autenticados • Los permisos se pueden configurar sobre una base por punto final • {GRANT|DENY|REVOKE} CONNECT ON ENDPOINT:: <EndPointName> TO <login>
Autenticación y política de contraseña basadas en punto finalPuntos finales de HTTP • Beneficios del soporte HTTP nativo • Soporte a protocolos en toda la industria • Puertos abiertos limitados en los firewalls • Puntos finales de HTTP • Los puntos finales se deben crear explícitamente • Sin permisos por predeterminación • Requiere Windows Server 2003 (HTTP.sys) pero no Internet Information Services (IIS)
Autenticación y política de contraseña basadas en punto finalCrear un punto final de HTTP Asigna la propiedad del punto final CREATE ENDPOINT endPointName [AUTHORIZATION login] STATE = { STARTED | STOPPED | DISABLED } AS { TCP | HTTP } ( PATH = 'url' , PORTS = ({CLEAR | SSL} [,... n]) [ SITE = {'*' | '+' | 'webSite' },] [, CLEAR_PORT = clearPort ] [, SSL_PORT = SSLPort ] , AUTHENTICATION =({BASIC | DIGEST | INTEGRATED} [,...n]) [, AUTH_REALM = { 'realm' | NONE } ] [, DEFAULT_LOGON_DOMAIN = {'domain' | NONE } ] [, RESTRICT_IP = { NONE | ALL } ] [, COMPRESSION = { ENABLED | DISABLED } ] [,EXCEPT_IP = ({ <4-part-ip> | <4-part-ip>:<mask> } [,...n]) )
Autenticación y política de contraseña basadas en punto finalCrear un punto final de HTTP CREATE ENDPOINT endPointName [AUTHORIZATION login] STATE = { STARTED | STOPPED | DISABLED } AS { TCP | HTTP } ( PATH = 'url' , PORTS = ({CLEAR | SSL} [,... n]) [ SITE = {'*' | '+' | 'webSite' },] [, CLEAR_PORT = clearPort ] [, SSL_PORT = SSLPort ] , AUTHENTICATION =({BASIC | DIGEST | INTEGRATED} [,...n]) [, AUTH_REALM = { 'realm' | NONE } ] [, DEFAULT_LOGON_DOMAIN = {'domain' | NONE } ] [, RESTRICT_IP = { NONE | ALL } ] [, COMPRESSION = { ENABLED | DISABLED } ] [,EXCEPT_IP = ({ <4-part-ip> | <4-part-ip>:<mask> } [,...n]) ) Tipo de autenticación que se va a usar
Autenticación y política de contraseña basadas en punto finalCrear un punto final de HTTP CREATE ENDPOINT endPointName [AUTHORIZATION login] STATE = { STARTED | STOPPED | DISABLED } AS { TCP | HTTP } ( PATH = 'url' , PORTS = ({CLEAR | SSL} [,... n]) [ SITE = {'*' | '+' | 'webSite' },] [, CLEAR_PORT = clearPort ] [, SSL_PORT = SSLPort ] , AUTHENTICATION =({BASIC | DIGEST | INTEGRATED} [,...n]) [, AUTH_REALM = { 'realm' | NONE } ] [, DEFAULT_LOGON_DOMAIN = {'domain' | NONE } ] [, RESTRICT_IP = { NONE | ALL } ] [, COMPRESSION = { ENABLED | DISABLED } ] [,EXCEPT_IP = ({ <4-part-ip> | <4-part-ip>:<mask> } [,...n]) ) Se utiliza en conjunto para restringir el acceso a punto final
Autenticación y política de contraseña basadas en punto finalPolítica de contraseña en SQL Server 2005 • Requiere Windows Server 2003 • Autenticación Windows • Inicio de sesión del usuario para Windows • Política de contraseña para Windows reforzada • Autenticación de SQL Server • Inicio de sesión de SQL Server • Política de contraseña de máquina local aplicada • Política de dominio en un ambiente de dominio • Vista del catálogo sys.sql_logins
Autenticación y política de contraseña basadas en punto finalCrear inicios de sesión Configuraciones de la política de contraseña
Autenticación y política de contraseña basadas en punto finalCrear inicios de sesión CREATE LOGIN login_name { WITH < option_list1 > | FROM < sources > } < sources >::= WINDOWS [ WITH windows_options [,...] ] | CERTIFICATE certname | ASYMMETRIC KEY asym_key_name < option_list1 >::= PASSWORD = ' password ' [ HASHED ] [ MUST_CHANGE ] [ , option_list2 [ ,... ] ] < option_list2 >::= SID = sid | DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | CHECK_EXPIRATION = { ON | OFF} | CHECK_POLICY = { ON | OFF} [ CREDENTIAL = credential_name ] < windows_options >::= DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language Configuraciones de la política de contraseña
demo • Autenticación y política de contraseña basadas en punto final • Investigar las políticas de contraseñas de Windows • Utilizar la interfaz gráfica para crear un inicio de sesión de SQL nuevo • Utilizar Transact-SQL para un crear un inicio de sesión de SQL nuevo
Encuesta: Está investigando diferentes métodos de acceso a su... • [Encuesta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar propiedades de la diapositiva...Para editar.] • TCP • HTTP • SM • NP
RepasoAutenticación basada en punto final Está investigando diferentes métodos de acceso a su SQL Server, ¿qué tipo de punto final no se crea automáticamente? • TCP • HTTP • SM • NP
Encuesta: Usted necesita instalar SQL Server y hacerlo disponible para... • [Encuesta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar propiedades de la diapositiva...Para editar.] • Instalar en Windows 2000 e instalar IIS • Instalar en Windows Server 2003 e Instalar IIS • Instalar en Windows Server 2003 y utilizar la isntrucción CREATE ENDPOINT para crear un punto final de HTTP • Instalar en Windows Server 2003 e instalar SQLXML 4.0
RepasoAutenticación basada en punto final Usted necesita instalar SQL Server y hacerlo disponible para los clientes basados en HTTP. ¿Qué debe hacer? • Instalar en Windows 2000 e instalar IIS • Instalar en Windows Server 2003 e instalar IIS • Instalar en Windows Server 2003 y utilizar la instrucción CREATE ENDPOINT para crear un punto final de HTTP • Instalar en Windows Server 2003 e instalar SQLXML 4.0
Agenda • Repaso • Modelo de seguridad de SQL Server 2005 • Autenticación y política de contraseña basado en punto final • Separación del esquema del usuario • Contexto de ejecución del módulo • Permisos granulares
Separación del esquema del usuarioIntroducción del esquema • Funcionalidad ampliada de versiones previas • Espacio de nombre para objetos de la base de datos • Los grupos de objetos no dependen de la propiedad • Permisos otorgados en el esquema así como en los objetos individuales de la base de dato • Los permisos otorgados en el esquema afectan los objetos de la base de datos del esquema • Soltar a un usuario no requiere renombrar los objetos propiedad del usuario
Separación del esquema del usuarioEsquema predeterminado • Se puede asignar un esquema predeterminado cuando se crea un usuario de la base de datos CREATE USER user_name [ FOR {LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name } ] [ WITH DEFAULT_SCHEMA = schema_name ] Especifique el esquema predeterminado
Separación del esquema del usuarioAdministrar esquemas • CREAR UN ESQUEMA • Crea un esquema • Asigna propiedad del esquema • Crea objetos de la base de datos como miembros del esquema • ALTERAR EL ESQUEMA • Cambie la propiedad del esquema • Mueva los objetos de la base de datos entre esquemas • SOLTAR ESQUEMA • Elimina el esquema
LON-SQL-01.AdventureWorks.Sales.Customer Separación del esquema del usuarioEspacio de nombre del objeto Ventas Cliente AdventureWorks LON-SQL-01
Ventas Cliente Separación del esquema del usuarioAcceder a los objetos de la base de datos • Vista del catálogo sys.database_principals • Vista del catálogo sys.schemas SELECT * FROM Customer SELECT * FROM JobCandidate dbo SELECT * FROM dbo.JobCandidate [ WITH DEFAULT_SCHEMA = Sales ] Candidato al puesto
Separación del esquema del usuarioCompatibilidad de la aplicación en versiones previas Propiedad de Celia SELECT CustomerID FROM Celia.Customer Aplic. Cliente El propietario cambió a Caitlin SELECT CustomerID FROM Celia.Customer Aplic. Cliente
Separación del esquema del usuarioCompatibilidad de la aplicación con SQL Server 2005 Propiedad de Celia Ventas SELECT CustomerID FROM Sales.Customer Aplic. Cliente El propietario cambió a Caitlin Ventas SELECT CustomerID FROM Sales.Customer Aplic. Cliente
demo • Separación del esquema del usuario • Crear un esquema y asignar propiedad • Utilizar espacios de nombre del objeto • Cambiar la propiedad y la inercia del esquema
Agenda • Repaso • Modelo de seguridad de SQL Server 2005 • Autenticación y política de contraseña basado en punto final • Separación del esquema del usuario • Contexto de ejecución del módulo • Permisos granulares
Contexto de la ejecución del móduloIntroducción • Configure el contexto de ejecución de los módulos • El que llama no requiere permisos • Efectivo con una cadena de propiedad rota • EJECUTAR COMO • El que llama (predeterminado) • Nombre del usuario (personaliza los permisos que se requieren) • Uno mismo • Propietario
Contexto de la ejecución del móduloProceso de contexto de ejecución • Vista del catálogo sys.sql_modules DENY SELECT ON sales.customer TO Bill GRANT SELECT ON sales.customer TO Jane CREATE PROCEDURE GetCusts WITH EXECUTE AS OWNER AS SELECT * FROM sales.customer Bill Jane sales.customer (Propietario: John) Procedimiento almacenado (Propietario: Jane)
demo • Contexto de ejecución del módulo • Utilizar el contexto de ejecución del módulo
Encuesta: Cuando cambia el propietario de un objeto, este cambia el ... • [Encuesta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar propiedades de la diapositiva...Para editar.] • Verdadero • Falso
RepasoSeparación del esquema del usuario ¿Cuándo cambia el propietario de un objeto, este cambia el espacio de nombre para ese objeto? • Verdadero • Falso
Encuesta: ¿Qué instrucción se utiliza para ejecutar un módulo como alguien... • [Encuesta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar propiedades de la diapositiva...Para editar.] • EXECUTE AS • EXECUTE • USER EXECUTE • RUNAS
RepasoContexto de la ejecución del módulo ¿Qué instrucción se utiliza para ejecutar un módulo como alguien que no sea el que llama? • EXECUTE AS • EXECUTE • USER EXECUTE • RUNAS
Agenda • Repaso • Modelo de seguridad de SQL Server 2005 • Autenticación y política de contraseña basado en punto final • Separación del esquema del usuario • Contexto de ejecución del módulo • Permisos granulares