Carrera Tcnica: Tcnico Universitario en Computacin
Asignatura: Base de Datos
Udelmar Digital
UNIDAD II
CONFIGURACIN DEL INICIO DE SESIN Y SEGURIDAD DEL USUARIO
Introduccin
En esta unidad analizaremos la manera en que SQL Server. En este captulo analizaremos la manera en que SQL Server autentifica las conexiones al servidor SQL Server y a la bases de datos individuales, y aprender cmo funciona la autenticacin de Windows 2000. La plataforma Windows 98 no cuenta con todos los mecanismos de seguridad disponibles para los usuarios de Windows 2000, por lo que se proporciona un breve anlisis de las diferencias.
Para tener acceso a los datos de SQL Server, debe pasar por varios niveles de seguridad. Si utiliza Canalizaciones con nombre o Multiprotocolo como su biblioteca de red de SQL Server, Windows 2000 valida su solicitud de conexin en el nivel de red, sin importar el modo de seguridad. Si se encuentra en Modo de seguridad mixto, su inicio de sesin en validado ya sea por SQL Server o por Windows NT/2000. La tabla de sistema syslogins de la base aster se utiliza si usted solicita una conexin con autenticacin de SQL Server. Si se encuentra en el modo de Autenticacin de Windows (el predeterminado), o cuando solicita validacin por parte de Windows en el Modo mixto, Windows 2000 es llamado a travs de la interfaz SSPI para validar su solicitud de inicio de sesin y permitirle el acceso a SQL Server. Recuerde que las conexiones validadas por Windows algunas veces se conocen como conexiones de confianza. Una vez que inicie una sesin, an necesita el acceso a base de datos para cada base de datos que desee utilizar. Debe ser miembro de un grupo de Windows 2000 que haya sido agregado a una base de datos, debe tener un nombre de usuario creado para su inicio de sesin en una base de datos, debe tener un alias en una base de datos, o debe tener un nombre de usuario invitado para poder tener acceso a esa base de datos. Este tipo de acceso no tiene nada que ver con los derechos (o permisos) que usted tenga cuando se encuentre en la base de datos. Debe utilizar funciones de SQL Server cuando no haya disponibles grupos de Windows 2000, o cuando sea conveniente. Las funciones son especficas de la base de datos, y por esto contienen usuarios, no inicios de sesin. Debe utilizar las funciones fijas de base de datos siempre que sea posible. Las funciones de servidor estn disponibles para los permisos que abarcan varias bases de datos. El uso de funciones de aplicacin es una manera de hacer que una aplicacin provea la funcionalidad de base de datos que los usuarios individuales no tienen con sus propias cuentas de seguridad.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital OBJETIVOS UNIDAD II
Objetivos Generales
a) Reconocer y comprender el modelo de seguridad que ofrece SQL Server, en lo que respecta a la definicin de usuarios y la auteticacin por paret de ellos a los sevicios de bases de datos
b) Solucionar los eventos de contingencias que se pruedan producir en los accesos no deseados a las bases de datos, mantener el sistema de seguridad configurado y en alerta.
Objetivos Especficos
a) Definir la lista de usuarios que interactuan con una base de datos y los prfiles respectivos de cada uno de ellos (seguridad Windows o Mixta)
b ) Administrar y organizar los inicios de sesin en forma grfica a traves del software Enterprise manager o Administrador Corporativo.
c) Clasificar a los usuarios en diversos niveles, para la gestin de un sistema administrativo e informtico en un motor de bases de dats SQL Server
En este captulo analizaremos la manera en que SQL Server autentifica las conexiones al servidor SQL Server y a la bases de datos individuales, y aprender cmo funciona la autenticacin de Windows 2000.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
El modelo de seguridad de acceso de SQL
La conexin con SQL Server 2000 ha sido hasta ahora relativamente sencilla. Ha estado utilizando la seguridad con autenticacin en Modo mixto de SQL Server (la cual opt por no seleccionar durante la instalacin) y ha estado iniciando sesiones con sus credenciales de inicio de sesin de Windows, como miembro de su grupo de administradores locales. Al conectarse ocurren varias cosas que tal vez no sean obvias en un principio. Cuando ejecuta SQL Server en Windows 2000, la seguridad se comprueba en tres lugares distintos al momento en que usted intenta realizar la conexin con SQL Server2000 (vea la figura 2.1). Tal vez usted sea validado por Windows 2000, por el mismo SQL Server (en forma de un inicio de sesin de SQL Server) y luego a nivel de base de datos individual (en forma de un nombre de usuario de base de datos).
Figura 2.1 Niveles de autenticacinde seguridad de red y de SQL Server
Autenticacin de red de Windows 2000
Solicitud de autenticacin de inicio de sesin con SQL Server
Autenticacin de inicio de sesin de SQL Server
Solicitud de autenticacin como usuario de base de datos
Autenticacin de usuario de base de datos de SQL Server
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Autenticacin de Windows
Al conectarse de su equipo cliente a un equipo Windows NT/2000 que ejecuta SQL Server 2000, Windows podra requerir la validacin de su conexin de red. Esto depende de su biblioteca de red de SQL Server. Si est utilizando Canalizaciones con nombre o Multiprotocolo como su biblioteca de red de SQL Server, su conexin debe validarse como autorizada por Windows 2000 para poder comunicarse con SQL Server. Como puede ver la figura 2.2, tanto Canalizaciones con nombre como Multiprotocolo pasan a travs del servicio Servidor de Windows 2000, el cual se encarga de la validacin de red de la solicitud de conexin de un usuario. Por lo tanto, debe tener un conjunto vlido credenciales de seguridad de Windows 2000 para conectarse al equipo servidor de Windows 2000. Como la biblioteca de red Sockets TCP/IP (Protocolo de Control de Transmisin/Protocolo Internet) no pasa a travs del servicio Servidor, no se necesita una cuenta vlida en Windows para conectarse con SQL Server 2000. A partir de SQL Server 2000, Sockets TCP/IP es la biblioteca de red predeterminada, por lo que esta cuestin no es tan crtica como lo sera si estuviera tratando de conectarse con versiones anteriores. No obstante, si tiene clientes con software SQL Server 7.0 (o versiones anteriores) en el cliente en sus equipos, probablemente tengan todava a Canalizaciones con nombre como su biblioteca de red predeterminada.
Figura 2.2 Comunicaciones de red SQL Server.
Equipo cliente Equipo SQL Server
SQL Server 2000
Servicio Servidor
NerBIOS Winsock
Procolo (TCP/IP)
NDIS
Tarjeta de red
Canalizaciones con nombre/Multiprotocolo
Sockets TCP/IP
Autenticacin de inicio de sesin de AQL Server
Debe proporcionar un nombre y una contrasea vlidos para conectarse a SQL Server (o debe tener una conexin integrada de Windows). Ms adelante veremos detalladamente la manera de hacerlo. Si sus credenciales de inicio de sesin son Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital vlidas, se conecta a SQL Server. Si sus credenciales no son vlidas, su acceso es denegado incluso si la autenticacin de red de Windows (su conexin de red con el equipo Windows 2000) tuvo xito.
Nombre de usuario de base de datos de SQL Server
Para utilizar cada base de datos en su sistema, debe tener permiso explcito de entrar en cada base de datos. Puede obtener acceso a una base de datos de varias maneras. Si no tiene un nombre de usuario de base de datos, no tiene acceso a la base de datos a la que intenta conectarse.
Permisos
El ltimo nivel de seguridad son los permisos. Una vez que inicie con xito una sesin en SQL Server y se encuentre en una base de datos, debe contar con el derecho explcito de acceder objetos de base de datos (ya sea para slo lectura o para modificacin).
Los modos de seguridad de AQL Server (incluyendo inicios de sesin)
SQL Server 2000 proporciona dos modos de seguridad distintos: El Modo integrado de Windows y el Modo mixto (tanto autenticacin integrada de Windows como autenticacin de SQL Server). El Modo de seguridad determina si slo Windows o tanto Windows como SQL Server son responsables de validar las solicitudes de conexin de red de Windows que se analiz previamente. Es imprescindible que comprenda las diferencias, para que pueda implementar apropiadamente la seguridad en SQL Server.
Seguridad de Modo mixto
En la seguridad de Modo mixto de SQL Server 2000, un usuario puede conectarse a SQL Server utilizando ya sea el Modo integrado de Windows, o el Modo de autenticacin de SQL Server. El Modo mixto es la mejor seleccin para obtener compatibilidad con versiones anteriores de SQL Server, y adems proporciona la mayor conectividad con equipos que no tengan Windows y que estn conectados en red, como los usuarios de Novell NetWare. Para comprende ambos modos de autenticacin, debe analizarlos detalladamente. Es ms sencillo empezar con una comprensin del Modo de autenticacin de SQL Server, la cual, por razones histricas, ha sido la mejor manera de conectividad proporcionada por SQL Server.
Modo de autenticacin de SQL Server
El Modo de autenticacin de SQL Server es el modo en el cual SQL Server acepta un ID de inicio de sesin y una contrasea de un usuario, y valida si las credenciales son vlidas, sin ayuda de Windows. Este mtodo siempre se utiliza en un equipo de Windows 9x y es opcional en un equipo Windows 2000. Este modo no es tan seguro como el Modo integrado de Windows y no se recomienda para ningn servidor Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital SQL Server que guarde informacin delicada. La informacin sobre los inicios de sesin se mantiene dentro de SQL Server (en la base de datos master, en la tabla de sistema sysxlogins). Las versiones de SQL Server anteriores a SQL Server 7.0 utilizan un Modo de autenticacin de SQL Server llamado Seguridad estndar, el cual es equivalente al Modo de autenticacin de SQL Server. Por lo tanto, si ve cualquier documentacin que utilice el viejo trmino, no se confunda; slo sustityalo con la nueva terminologa. Si se conecta por medio del inicio de sesin, entonces est utilizando el Modo de autenticacin de SQL Server. Por lo tanto, la tabla de sistema sysxlogins contiene una entrada para el ID de inicio de sesin sa, junto con una contrasea, en caso de tener una asignada (nuestro programa de instalacin asign a la contrasea la palabra contrasea. Una vez instalado SQL Server 2000, slo existe el inicio de sesin sa estndar de SQL Server. En un equipo Windows 2000, el grupo local de administradores tambin se agrega como el equivalente de sa (como miembros de la funcin fija de seguridad sysadmin).
Contraseas: Las contraseas de inicio de sesin en Modo de autenticacin de SQL Server se mantienen en la columna contrasea de la tabla sysxlogins en la base de datos master. Para ver las entradas de la tabla sysxlogins, inicie el Analizador de consulta de SQL Server, y ejecute esta consulta (para ejecutarla debe estar conectado como miembro de la funcin sysadmin, la cual se explica ms adelante):
Entrada SELEC substring(name, 1,25) AS nombre, substring (password, 1,20) AS contrasea, language AS lenguaje FROM sysxlogins
La primera fila de la salida anterior representa el grupo local de administradores de Windows; analizaremos la seguridad integrada de Windows en el siguiente texto. La siguiente fila representa la cuenta de servicio que usted seleccion para los servicios de SQL Server durante la instalacin. El ID de inicio de sesin sa, mostrado a continuacin, se instala con la contrasea que seleccion durante la instalacin en nuestro caso, contrasea, representada aqu por el texto cifrado. Todos los inicios de sesin y contraseas autenticados de SQL Server se mantienen en esta tabla de sistema. Si la contrasea es nula, aparece la palabra clave NULL en la columna contrasea. Si una contrasea es distinta de NULL, se guarda como texto cifrado, y aparece una representacin hexadecimal del texto cifrado (como se muestra aqu para sa). Con el fin de hacer comparaciones, es seguro pensar en NULL como espacios en blanco, dentro del contexto de los inicios de sesin de seguridad. Las contraseas que pueden verse con una consulta podran parecerle un poco desconcertantes al principio. NO obstante, tome en cuenta lo siguiente antes de preocuparse demasiado:
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Slo un miembro de la funcin sysadmin (incluyendo el inicio de sesin sa) puede ver la columna de contraseas. Ningn otro inicio de sesin o usuario pueden verla, a menos que se le proporciones explcitamente el derecho de hacerlo. El algoritmo de cifrado es de un solo sentido. Cuando se cifra una contrasea, no puede descifrarse. Cuando usted inicia una sesin, la contrasea que proporciona se cifra y luego se compara con la contrasea cifrada de la tabla sysxlogins. Si concuerdan, se otorga el acceso al servidor. Si no concuerda, se despliega el mensaje Error de inicio de sesin y no puede utilizarse la conexin. Adems, si utiliza un inicio de sesin de seguridad de Windows, no se guardan las contraseas en SQL Server.
Administracin de inicios de sesin en Modo de autenticacin de SQL Server
El primer paso en la configuracin de su servidor para el acceso es crear inicios de sesin. Puede agregar inicios de sesin utilizando el procedimiento almacenado del sistema llamado sp_addlogin (como se muestra a continuacin) o utilizando el Administrador corporativo de SQL Server. Observe de nuevo que si utiliza Windows 2000, el Modo integrado de Windows es el mtodo preferido de administracin de seguridad, el cual se analizar posteriormente le da de hoy.
Inicio de sesin es el nombre que desea que el usuario utilice al iniciar la sesin. Este nombre debe ser un identificador de SQL Server vlido (debe empezar con una letra o los caracteres #, @ o _, y el resto de los caracteres pueden ser esos caracteres o letras y nmero hasta 128 caracteres Unicode). Contrasea es la contrasea para este inicio de sesin. La contrasea es nula si no elige una en este momento. Basededatos es la base de datos predeterminada en la que desea que se coloque al usuario cuando inicie una sesin. Si no especifica este parmetro, la base de datos predeterminada ser master. Lenguaje es el lenguaje predeterminado a utilizar para este usuario cuando inicie una sesin. Si no se especifica este parmetro, el lenguaje predeterminado es Spanish. Sid es el identificador de seguridad que se especifica para un usuario (esta opcin no se recomienda). Puede utilizar opcin_cifrado para desactivar el cifrado de la contrasea (descrito anteriormente). Esta caracterstica le permite extraer una contrasea cifrada de una versin anterior de SQL Server e insertarla directamente en SQL Server 2000, para que la contrasea de inicio de sesin de un usuario funcione tambin con este servidor SQL Server. Para desactivar el cifrado, utilice aqu la cadena literal skip_encryption. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Para agregar un inicio de sesin a su servidor, abra el Analizador de consultas de SQL Server e inicie una sesin. Ejecute el siguiente comando de T-SQL:
Entrada EXEC sp_addlogin sunombre, sucontrasea
Si vuelve a ejecutar la consulta que ejecut anteriormente con la tabla sysxlogins, ver una nueva fila con su nombre y contrasea cifrada. Si crea una nueva conexin con SQL Server, puede iniciar una sesin con el nombre y contrasea que acaba de agregar. Lo siguiente que debe hacer es cambiar su contrasea. Puede hacerlo mediante el Administrador corporativo de SQL, o por medio del procedimiento almacenado del sistema llamado sp_password:
Anterior es su vieja contrasea Nueva es su nueva contrasea En inicio de sesin, si est conectado como miembro de las funciones dysadmin o securityadmin, puede cambiar la contrasea de cualquiera. De hecho, no necesita saber la contrasea anterior de una persona; simplemente puede utilizar NULL en la contrasea anterior.
Un ejemplo del procedimiento almacenado del sistema sp_password se vera as:
EXEC sp_password NULL, nuevacontrasea, richard
Aunque usted no conoce la contrasea anterior de Richard puede cambiarla, ya que usted es el administrador del sistema. Como precaucin de seguridad, los usuarios ordinarios no pueden hacer esto, y deben conocer su contrasea anterior para poder cambiarla por una nueva contrasea. Este procedimiento no debe ser difcil, ya que primero tienen que iniciar una sesin para poder ejecutar este comando. Es muy buena idea cambiar con frecuencia sus contraseas. Desgraciadamente, SQL Server 2000 no tiene ninguna manera de hacer valer las restricciones de contraseas y dems precauciones de seguridad. Este es un motivo por el cual puede optar por implementar la seguridad integrada. Windows 2000 puede especificar las longitudes mnimas de las contraseas, la frecuencia del cambio y las reglas mnimas de complejidad de las contraseas. Tambin podra ser conveniente cambiar la base de datos predeterminada o el lenguaje predeterminado con el que el usuario inicia una sesin. Puede hacer esto desde el Administrador corporativo de SQL Server, o utilizando los procedimientos almacenados del sistema llamados sp_defaultdb y sp_defaultlanguage:
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital sp_defaultdb nombreiniciodesesin, defdb sp_defaultlanguage nombreiniciodesesin [, lenguaje]
Los parmetros son los mismos que se describieron anteriormente. Estas opciones simplemente le permiten cambiar varios campos de la tabla sysxlogins (la base de datos predeterminada o el lenguaje predeterminado). Puede utilizar dos procedimientos almacenados del sistema adicionales para el manejo de los inicios de sesin: sp_helplogins y sp_droplogin. El procedimiento almacenado del sistema sp_helplogins le permite obtener un informe sobre los inicios de sesin que se han creado en su servidor.
El SID (identificador de seguridad) es la forma en que SQL Server lleva el registro de los inicios de sesin y usuarios dentro de SQL Server. Para los inicios de sesin con autenticacin de SQL Server, es un valor binario de 16 bytes generado por SQL Server. Para los usuarios con seguridad integrada de Windows (que analizaremos en breve), es el nmero de identificacin de red globalmente nico del usuario, el cual identifica al usuario en la red de Windows.
El procedimiento almacenado del sistema sp_droplogin elimina la entrada de inicio de sesin de la tabla sysxlogins. Despus de eliminar una entrada, el usuario correspondiente ya no podr iniciar sesin en SQL Server:
Sp_droplogin iniciodesesin
Para el procedimiento almacenado sp_droplogin, iniciodesesin tiene el mismo significado que para cada uno de los dems procedimientos almacenados. En este punto ha conocido la manera de lograr la administracin de inicios de sesin en Modo de autenticacin de SQL Server utilizando los diversos procedimientos almacenados del sistema.
El Modo de autenticacin de Windows en seguridad mixta
El Modo de autenticacin de Windows es la otra opcin en la seguridad de Modo mixto, pero la analizaremos ms adelante en la seccin Modo de autenticacin de Windows, ya que estos modos son idnticos en funcionalidad y administracin. Hay una observacin en cuanto a la terminologa que usted debe conocer antes de analizar las conexiones de Windows. Se dice que una conexin por medio de la autenticacin de Windows es una conexin de confianza. Por lo tanto, cuando vea el trmino conexin de confianza, piense en l como si fuera una conexin con autenticacin de Window, la cual ha sido validad ya sea por Windows NT o Windows 2000.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Modo de autenticacin de Windows
Con la seguridad en Modo de autenticacin de Windows, despus de conectarse con SQL Server a travs de la red, debe presentar sus credenciales de seguridad de Windows (lo cual se conoce como token de acceso). Estas credenciales se generan en el proceso de inicio de sesin en una red de Windows 2000. Estas credenciales de seguridad se pasan por usted en forma discreta, por lo que no necesita hace nada especial par pasar su seguridad. Puede otorgar el acceso a SQL Server directamente mediante cuentas de seguridad de Windows 2000, o indirectamente mediante grupos de Windows 2000. Lo mejor acerca del Modo de autenticacin de Windows es que los usuarios no tienen que preocuparse por iniciar sesin en forma separada a SQL Server. Esta capacidad est en conformidad con el concepto en el que los usuarios deben tener que iniciar sesin en la red una vez, y deben recordar una sola contrasea. Y no slo eso, sino que tambin puede aprovechar que la mayora de sus usuarios probablemente ya cuenten con cuentas de inicio de sesin de Windows, lo que a su vez reduce la sobrecarga administrativa debido a la administracin de cuentas de seguridad para su servidor SQL Server.
Configuracin de grupos y usuarios de Windows 2000
El primer paso para configurar la seguridad en Modo de autenticacin de Windows no es algo que corresponda a SQL Server es una visita a al herramienta Administracin de equipos (o Administrador de usuarios en equipos Windows NT). Primero debe crear grupos de Windows 2000 para los usuarios, luego debe crear los usuarios (si es que no existen ya) y agregarlos a los nuevos grupos que acaba de crear, y luego debe asignarles permisos para iniciar sesin en SQL Server. Para ello, seleccione Inicio | Configuracin | Panel de control, haga doble clic en Herramientas administrativas y luego en Administracin de equipos para iniciar la consola Administracin de equipos (si est administrando un dominio, debe utilizar la consola de administracin de Usuarios y equipos de Active Directory). Expanda la opcin Usuarios locales y grupos.
Debe agregar nuevos grupos locales a la base de datos SAM (Administrador de cuentas de seguridad) de Windows del equipo en el que se ejecuta SQL Server. Es una base de datos interna de Windows 2000, no usa base de datos de SQL Server. Si desea controlar un equipo remoto en vez del equipo en el que se encuentra trabajando actualmente, simplemente haga clic con el botn derecho del ratn en Administracin del equipo (Local), seleccione la opcin Conectar con otro equipo, y luego escriba el nombre del equipo que desea administras. Si desea administrar un Dominio de Active Directory, debe utilizar el conjunto de herramientas de Active Directory, como se mencion anteriormente. Al igual que con la mayora de las operaciones relacionadas con Windows 2000o, debe estar conectado al equipo como miembro del grupo local de administradores o no podr realizar las siguientes operaciones. Ahora cree tres nuevos grupos locales para utilizar con SQL Server: un grupo que contenga a los usuarios que pueden iniciar sesin como administradores de SQL Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Server (aquellos usuarios de Windows 2000 que pueden administrar completamente a SQL Server), otro grupo para las personas de ventas, y otro para los usuarios de Mercadotecnia. Luego puede asignar usuarios a cada grupo, como lo desee. Puede determinar lo que los usuarios pueden hacer una vez que estn conectados. El primer grupo es para el acceso administrativo a SQL Server. Seleccione y resalte la carpeta Grupos, haga clic con el botn derecho del ratn en ella y luego seleccione la opcin Grupo nuevo. Llene los campos Nombre de grupo y Descripcin.
Ahora coloque su cuenta en el grupo. Haga clic con el botn Agregar para ver una lista de cuentas que puede agregar. La lista est compuesta de los grupos globales y cuentas de su domino predeterminado, o slo de las cuentas si su equipo con SQL Server no es el miembro de un dominio.
Si no ve el nombre de su equipo en el panel Buscar en, seleccinelo del cuadro de lista desplegable. A continuacin ver el nombre de su equipo, el domino predeterminado y cualquier dominio de confianza. Si est utilizando un dominio, seleccione su cuenta de dominio para agregarla a la lista, en lugar de crear y agregar una cuenta local de Windows 2000 duplicada. Ahora que est viendo la lista correcta, agregue su nombre de usuario al grupo seleccionando su nombre de cuenta, haciendo clic en Agregar y luego Aceptar.
Haga clic en Crear y luego repita el proceso para crear un grupo llamado Ventas. Luego cree un grupo llamado mercadotecnia. Sin embargo, esta ve agregue un usuario o conjunto de usuarios distinto. En mi sistema configur tres usuarios adicionales Ann, Bob y Cat- para este fin. Coloqu a Ann y a Bob en Ventas, y a Bob y a Cat en Mercadotecnia. Agregu intencionalmente a Bob en ambos grupos. Si nunca ha agregado un usuario en Windows 2000, seleccione y resalte el grupo, haga clic con el botn derecho del ratn en el mismo, seleccione la opcin Agregar a grupo del men contextual, haga clic en Agregar como lo hizo anteriormente, y seleccione los usuarios que va a agregar al grupo. Si crea los usuarios ahora, recuerde desactivar la opcin El usuario debe cambiar la contrasea en el siguiente inicio de sesin. Adems, a todos los usuarios les di la misma contrasea, contrasea.
Cmo otorgar permiso a las cuentas de Windows 2000 para iniciar sesin en SQL Server
Despus de establecer los usuarios y grupos, es tiempo de otorgar a esos grupos de acceso a SQL Server. Puede lograrlo utilizando los procedimientos almacenados de sistema sp_grantlogin, sp_revokelogin y sp_denylogin. stos funcionan en forma muy parecida a sp_addlogin y a sp_droplogin, los cuales vimos anteriormente con el Modo de autenticacin de SQL Server. Primero otorgue permisos de inicio de sesin a los grupos de Windows, y luego a los usuarios individuales, segn sea necesario. Este mtodo de otorgar inicios de sesin le permite ejecutar la menor cantidad posible de comandos y tener la menor sobrecarga administrativa posible, y al mismo tiempo le permite un control individual Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital de los privilegios de inicio de sesin. Para otorgar permisos de inicio de sesin, utilice el procedimiento almacenado de sistema llamado sp_grantlogin:
Sp_grantlogin [@loginame =] iniciodesesin
En esta sintaxis, iniciodesesin es el nombre del grupo o usuarios de Windows 2000 al cual se desea otorgar el derecho de iniciar sesin en SQL Server. El inicio de sesin debe ser del tipo BASEDEDATOS_SEGURIDAD\Nombreusuario por ejemplo, MIDOMINIO\Richard.
Por ejemplo, para otorgar permisos reinicio de sesin en SQL Server al grupo Ventas, puede ejecutar:
Entrada Exec sp_grantlogin SERVIDORNT\Ventas
Sustituyendo a SERVIDORNT con el nombre de su equipo (o con el nombre del dominio si ejecuta SQL Server en un controlador de dominio). Debe recibir un mensaje similar a ste:
Salida Concedido acceso de inicio de sesin a SERVIDORNT\Ventas
Ahora cualquier usuario de Windows 2000 que sea miembro de grupo Ventas puede iniciar una sesin en SQL Server. Puede probar esta capacidad iniciando una sesin en Windows 2000 ya sea como Ann o como Bob, iniciando el Analizador de consultas de SQL Server, y seleccionando la opcin Autenticacin de Windows para forzar una conexin de confianza con SQL Server 2000. En la barra de ttulo de la conexin de consulta debe aparecer su nombre de usuario de Windows 2000. Observe que est conectado como usted mismo en Windows 2000, aun cuando el grupo ventas es la entidad a la que se le otorgan derechos de inicio de sesin en SQL Server. Esta forma de conexin le garantiza que obtendr un rastro de auditora y le permite un mucho mejor control de los permisos posteriormente.
Tambin puede quitar el derecho reinicio de sesin en SQL Server a un usuario o grupo de Windows 2000, utilizando el procedimiento almacenado de sistema sp_revokelogin:
sp_revokelogin [@loginame =] iniciodesesin
En este procedimiento, iniciodesesin es el nombre del grupo o usuario de Windows 2000 al que se quiere quitar el derecho de iniciar sesin en SQL Server. Sp_revokelogin quita un derecho de inicio de sesin otorgado previamente. Por lo tanto, la siguiente lnea quita. A cualquiera que se encuentre en el grupo Ventas, el derecho de iniciar sesin en SQL Server, ya que este derecho fue otorgado previamente al grupo ventas:
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Entrada Exec sp_revokelogin SERVIDORNT\Ventas
Sin embargo, la siguiente lnea no tiene efecto, ya que no se haban otorgado previamente al grupo Mercadotecnia derechos de inicio de sesin en V:
Adems, observe que, aunque se puede revocar a Ann el derecho de iniciar sesin como se muestra a continuacin, la revocacin de este derecho no afecta a los derechos que este usuario recibe de los grupos:
Entrada Exec sp_revokelogin SERVIDORN\Ann
Por lo tanto, si el grupo Ventas tiene el derecho de iniciar sesin, y usted ejecuta la instruccin anterior, esto no cambia la capacidad de Ann de iniciar sesin en SQL Server. Si desea especificar que cualquiera que se encuentre en el grupo Ventas puede iniciar una sesin, excepto Ann, debe utilizar el procedimiento almacenado de sistema sp_denylogin:
Entrada sp_denylogin [@loginame =] iniciodesesin
En este procedimiento, iniciodesesin es el nombre de grupo o usuario de Windows 2000 al cual desea negar el derecho de iniciar sesin en SQL Server. Pruebe este cdigo como ejemplo (de nuevo, sustituyendo el nombre correcto de la base de datos de seguridad en lugar de SERVIDORNT):
Ahora inicie una sesin en su sistema Windows 2000 como Ann, e intente conectarse a SQL Server. No tendr permiso de inicio de sesin. Inicie una sesin en Windows 2000 como Bob y conctese a SQL Server y el inicio de sesin funciona a la perfeccin. Se ha negado el permiso a Ann, pero a Bob, como miembro del grupo Ventas, se le ha otorgado el permiso de iniciar sesin. Los derechos denegados siempre sustituyen a los dems derechos otorgados.
Cmo configurar el modo de seguridad
Hasta ahora ha aprendido cmo agregar usuarios en Modo de autenticacin de SQL Server y usuarios y grupos de Windows 2000 a SQL Server. Sin embargo, debe saber cul modo de seguridad utilizar. Para establecer cul modo de seguridad est utilizando su servidor, inicie el Administrador corporativo de SQL Server y haga clic con el botn derecho del ratn e su servidor, el cual se encuentra en el panel izquierdo de la herramienta. Seleccione la opcin Propiedades del men contextual y haga clic en la ficha Seguridad. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Si est trabajando en un equipo Windows 2000, ver el cuadro de dilogo pudiendo seleccionar ya sea Slo Windows (el predeterminado), o SQL Server y Windows. En un equipo Windows 9x la mayor parte de este cuadro de dilogo est de deshabilitada (en color gris), ya que esos sistemas no cuentan con autenticacin de Windows. Para cambiar la configuracin de seguridad, simplemente haga clic en la opcin que desee. El cambio no tendr efecto sino hasta que reinicie el servicio SQL Server (MSSQLServer para una instancia predeterminada, MSSQL$NombreInstancia para una instancia con nombre).
El marco Cuenta de inicio de servicio le permite cambiar la cuenta utilizada por SQL Server para ejecutar el servicio SQL Server. Despus de realizar cualquier cambio en este cuadro de dilogo, debe detener y reiniciar SQL Server para que los cambios tengan efecto. Como es poco probable realizar este cambio ms de una vez, detener y reiniciar el servicio no debe representar un problema serio.
Administracin de inicios de sesin en forma grfica
Ahora es un buen momento para analizar lo que ha aprendido hasta ahora. SQL Server tiene dos tipos de inicios de sesin:
Inicios de sesin de Windows NT/2000, ya sea por medio de IDs de usuario individualidades o grupos. Inicios de sesin de SQL Server, los cuales se guardan en la tabla sysxlogins que se encuentra en la base de datos master.
Cada uno tiene sus ventajas. Los inicios de sesin de SQL Server pueden utilizarse en la plataforma de Windows 9x y no requieren que usted tenga organizados dominios de Windows 2000 en sistemas Windows 2000. Sin embargo, los inicios de sesin de Windows 2000 son preferidos si ya se encuentra en una red de Windows configurada apropiadamente, debido a que ya se han creado e identifican en forma nica a cada usuario de su organizacin. Ya aprendi cmo crear cada uno de estos inicios de sesin, y cmo permitir los inicios de sesin en SQL Server. Hizo esto por medio de los procedimientos almacenados de sistema tales como sp_addlogin y sp_password. No obstante, hay una manera ms fcil de utilizar el Administrador corporativo de SQL Server. No esper a mostrarle el Administrador corporativo de SQL Server por maldad. Es slo que puede crear ambos tipos de inicios de sesin fcilmente desde una interfaz grfica individual, por lo que necesita comprenderlos antes de analizar esta interfaz.
He otorgado permiso al grupo Ventas de Windows 2000 para iniciar sesin en SQL Server y he denegado explcitamente el permiso de iniciar sesin al usuario Ann de Windows 2000. El grupo BUILTIN\Administradores de Windows 2000 se agrega durante la instalacin, y el inicio de sesin sa tambin se crea durante la instalacin. Me he agregado a m mismo como inicio de sesin estndar (de SQL Server).
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Para agregar al grupo Mercadotecnia como inicio de sesin vlido, haga clic con el botn derecho en cualquier lugar del panel derecho de la ventana del Administrador corporativo, y seleccione la opcin Nuevo inicio de sesin. Aparecer el cuadro de dilogo. Complete el cuadro de dilogo segn se muestra en la figura para agregar al grupo Mercadotecnia.
Haga clic en Aceptar para terminar de agregar el inicio de sesin, y luego haga lo mismo para agregar una cuenta para Bob. (En realidad no necesita agregar una cuenta para Bob, ya que l puede iniciar una sesin desde el grupo ventas o desde el grupo Mercadotecnia.) Agregue un inicio de sesin de SQL Server llamado Don, con una contrasea de contrasea. Despus de hacer clic en Aceptar tiene que confirmar la contrasea que acaba de escribir.
Todo lo que debe hacer para denegar el acceso a alguien es seleccionar la opcin Denegar acceso. La eleccin de esta opcin tiene sentido slo para los inicios de sesin de Windows 2000. Para denegar el acceso a un inicio de sesin de SQL Server, simplemente no lo cree. Para modificar un inicio de sesin existente, haga clic con el botn derecho del ratn en el inicio de sesin deseado del panel derecho y seleccione la opcin Propiedades del men contextual. Observe las otras 2 fichas que aparecen en el cuadro de dilogo: Funciones del servidor y Acceso a base de datos. stos son los siguientes dos temas que vamos a analizar.
Usuarios de bases de datos
Una vez configurada la seguridad de inicio de sesin y establecidos los inicios de sesin puede empezar a configurar el acceso a las bases de datos. Tener un inicio de sesin en SQL Server no le proporciona acceso a ninguna base de datos del servidor. Para ello, debe tener un nombre de usuario de base de datos. Cada base de datos tiene una ruta de acceso separada, la cual se guarda en la tabla del sistema sysusers en cada base de datos. Los inicios de sesin se asignan esencialmente a un nombre de usuario en cada base de datos que el usuario necesita acceder. Puede crear esa asignacin o crear un usuario de base de datos en una base de datos utilizando el procedimiento almacenado de sistema sp_grantdbaccess o el Administrador corporativo de SQL Server.
Cmo agregar un usuario a una base de datos
Para agregar uniusuario a una base de datos, ejecute el procedimiento almacenado de sistema sp_grantdbaccess:
Iniciodesesin es el nombre reinicio des sesin que agreg anteriormente (ya sea como inicio de sesin de SQL Server o como inicio de sesin o grupo de Windows NT/2000). Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Nombre_en_bd es el nombre que quiere que tenga un individuo cuando ste se encuentre en esta base de datos (el nombre de usuario). Si no especifica un nombre, se le asigna el mismo valor que el del nombre de inicio de sesin.
Le recomiendo que asigne al nombre de usuario el nombre de inicio de sesin siempre que sea posible, para que sea ms sencillo seguir la seguridad de los inicios de sesin hacia los usuarios en cada base de datos. No tiene que hacerlo, pero no es un poco confuso iniciar una sesin como Richard, pero tener un nombre de usuario de Bill en la base de datos ventas y de J ohnny en la base de datos pubs? Mantener los mismos nombres elimina la confusin (lo cual es el mejor inters para todos en un producto tan complejo como SQL Server). Claro que nada de esto resulta ser un problema si utiliza usuarios y grupos de Windows. Por ejemplo, si quiere que Bob tenga acceso a la base de datos pubs de su servidor, ejecute:
Entrada use pubs EXEC sp_grantdbaccess SERVIDORNT\Bob
En este caso, debera obtener el mensaje:
Salida Concedido a al base de datos acceso a SERVIDORNT\Bob
De nuevo, debe recibir un mensaje de xito. Al agregar un grupo, todos los miembros de ese grupo de Windows pueden tener acceso a la base de datos, pero slo el grupo tiene un usuario de base de datos es decir, no existe una entrada para cada usuario del grupo, sino simplemente para el grupo en s, como en el caso de los inicios de sesin. Para quitar a alguien el acceso a la base de datos, se ejecuta el procedimiento almacenado de sistema sp_revokedbaccess:
Sp_revokedbaccess [@name_in_db =] nombre_en_bd]
En este procedimiento almacenado, nombre_en_bd es el nombre del usuario de base de datos que se va a quitar. Slo los miembros de las funciones db_accessadmin y db_owner (o de la funcin fija de servidor sysadmin) pueden ejecutar cualquiera de estos dos procedimientos almacenados de sistema. Para ver cules usuarios se encuentran en su base de datos, y a cul inicio de sesin pertenecen, puede ejecutar el procedimiento almacenado de sistema sp_helpuser: Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Sp_helpuser [[@name_in_db =] nombreusuario
Aqu, nombreusuario es opcional, y puede ser un nombre de usuario o un nombre de funcin.
Sin no especfica un nombre de usuario, se produce un informe de todos los usuarios y funciones. Si especifica un nombre, obtiene un informe para ese usuario o funcin especficos. Al crear una base de datos, ya se tiene ah a un usuario. Uno de estos usuarios se llama dbo (que significa propietario de la base de datos). El usuario dbo se asigna de manera predeterminada al inicio de sesin sa. Al instalar SQL Server, el inicio de sesin sa se considera como el propietario de todas las bases de datos. Si otro inicio de sesin crea una base de datos, ese inicio de sesin es el propietario de la base de datos. Dentro de una base de datos, no hay nada que el usuario dbo no pueda hacer. Este usuario es tan poderoso como los miembros de la funcin sysadmin de cada base de datos. Sin embargo, slo los miembros de la funcin fija de servidor sysadmin tienen ciertos privilegios en todo el sistema. Ahora trate de crear un usuario en la base de datos pubs. Si ha seguido todos los ejemplos hasta ahora, debe tener un inicio de sesin de nombre Don en su servidor SQL Server. Este usuario fue creado como inicio de sesin de SQL Server hace unos instantes. Inicie el Analizador de consultas de SQL Server y ejecute las siguientes instrucciones de T-SQL:
Entrada USE pubs EXEC sp_grantdbaccess Don
Este ejemplo agrega el nuevo usuario Don a la base de datos pubs, al cual se asigna el ID de inicio de sesin Don en la tabla sysxlogins de la base de datos master. Puede verificar esto si ejecuta sp_helpuser en la base de datos pubs
Observe que Don ha sido agregado como usuario a la base de datos, con el nombre de inicio de sesin Don. Probablemente pueda darse cuenta del porqu sera confuso utilizar aqu distintos nombres. Tambin observe que los permisos otorgados anteriormente para los usuarios y grupos de Windows 2000 tambin estn ah, junto con dbo y guest. Hace un rato dije que un inicio de sesin no le permite tener acceso a ninguna base de datos, no obstante, al iniciar la sesin puede tener acceso a todas las bases de datos del sistema, as como a las bases de datos de ejemplo pubs y Northwind. Cmo es esto posible? Puede hacer esto gracias al nombre de usuario guest. Al ejecutar sp_grantdbaccess guest en una base de datos, se agrega a la misma una cuenta de usuario especial conocida como cuenta de invitado (guest). Observe esta cuenta de invitado en los resultados del procedimiento almacenado de sistema sp_helpuser. Observe que no est asignada a un inicio de sesin, sino a NULL. Es un usuario especial y no est sujeto a las reglas normales. Cuando existe una cuenta de usuario guest en una base de datos, cualquier inicio de sesin que solicite acceso a la base de datos y que no tenga un nombre de usuario creado especficamente en la base de datos (ya sea por medio de la membresa de grupo o de una cuenta individual) puede Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital entrar como invitado. Por lo tanto, durante la instalacin se crea una cuenta guest en cada base de datos predeterminada de su servidor.
El nombre de usuario guest
Si se conecta con un inicio de sesin para el que no haya creado un nombre de usuario especfico en la base de datos pubs, tendr acceso a la base de datos como invitado. Si trata de acceder una base de datos en la que no tiene nombre de usuario y en la que no existe el nombre de usuario guest, se producir un mensaje error. Por ejemplo, si trata de utilizar la base de datos Northwind (ya sea seleccionndolo la entrada Base de datos del Analizador de consultas de SQL Server, o ejecutando el comando de Transact-SQL use Northwind) despus de quitar el nombre de usuario guest (con sp_revokedbaccess), recibir un mensaje similar a ste:
Servidor: mensaje 916, nivel 14, estado 1, lnea 1 El usuario de servidor don no es un usuario vlido en la base de datos Northwind
El error informa que su inicio de sesin no est asignado adecuadamente a un usuario de la base de datos Northwind e implica que no existe una cuenta guest. Para solucionar este problema, agregue guest ejecutando lo siguiente, o, lo que es ms conveniente, agregue una asignacin apropiada al inicio de sesin para la base de datos:
Entrada Use Northwind EXEC sp_grantdbaccess guest
Hasta ahora hemos descubierto dos manera de tener acceso a una base de datos: ser asignado como usuario desde un inicio de sesin, o utilizando el nombre de usuario guest. Tambin puede ser dbo, lo que significa que usted es el inicio de sesin que cre la base de datos. O podra utilizar un alias con otro usuario por razones histricas. Cmo agregar un alias
sp_addalias nombre_iniciosesin, nombreusuario
En la sintaxis de sp_addalias:
Nombre_iniciodesesin es el nombre de inicio de sesin del usuario que desea asignar. Nombreusuario es el usuario de base de datos que usted quiere personificar.
El uso de alias se cre para ayudar a simplificar la seguridad de una base de datos. Puede asociar todos los inicios de sesin que desee a un solo usuario de una base de datos. Si un inicio de sesin ya tiene asignado un nombre de usuario en la base de datos, ese inicio de sesin no puede asociarse tambin a un usuario. De nuevo, las funciones proporcionan un modelo de seguridad mucho ms conveniente. Esta opcin de acceso a las bases de datos se utiliza por lo general para asignar inicios de sesin al usuario dbo de una base de datos. Sin embargo, slo puede haber un Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital propietario real de la base de datos en un momento dado. Como la mayora de las empresas tienen ms de un administrador, tal vez quieran que ms de un usuario acte como propietario de la base de datos. Las funciones se hacen cargo de este problema. Si cambia de opinin y decide quitar el alias, puede hacerlo por medio del procedimiento almacenado de sistema sp_dropalias:
Sp_dropalias nombre_iniciodesesin
En la sintaxis, nombre_iniciodesesin es el nombre de inicio de sesin del usuario. Los alias deben existir slo en una base de datos que haya sido actualizada en SQL Server 6.5 a SQL Server 2000 y deben quitarse cuando el tiempo y las pruebas lo permitan, ya que probablemente no tengan soporte en versiones futuras de Microsoft SQL Server.
Cmo cambiar el propietario de la base de datos
Tal vez quiera cambiar el propietario de una base de datos existente para asignar la responsabilidad de una base de datos a un DBA (administrador de bases de datos). Si desea hacer este cambio, el inicio de sesin no debe existir en la base de datos como nombre de usuario. Para cambiar el propietario, ejecute el procedimiento almacenado de sistema sp_changedbowner:
Sp_changedbowner [@loginame =] iniciodesesin [, [@map =] reasignar_alias_indicador] En esta sintaxis: Iniciodesesin es el ID de inicio de sesin de SQL Server que se va a asignar. Reasignar_alias_indicador es un parmetro opcional que si no se proporciona, ocasiona que se quiten todos los usuarios cuyo alias sea dbo al cambiar el propietario alias con el dbo antiguo tendrn un alias con el nuevo dbo.
Hemos visto cuatro maneras distintas de tener acceso a una base de datos una vez que se inicia con xito una sesin en SQL Server. Las revisaremos en el siguiente orden:
sa- El usuario sa (o cualquier miembro de la funcin de servidor sysadmin) siempre tiene acceso a una base de datos y siempre aparece como dbo, incluso cuando se haya asignado la propiedad de base de datos a otro inicio de sesin con sp_changedbwner. Nombre de usuario de base de datos- La manera normal de tener acceso a una base de datos es utilizar un nombre de usuario asignado a un ID de inicio de sesin de SQL Server (ya sea un nombre de usuario o de grupo de Windows 2000). Esto tambin se aplica a los grupos de Windows 2000 a los que se les haya otorgado derechos de acceso. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Alias- Puede tener un alias con un usuario de base de datos vlido. Dentro de la base de datos usted emula al otro usuario, en trminos de permisos y privilegios. Guest- Si todo lo dems falla, SQL Server comprueba si existe una cuenta de invitado en la tabla del sistema de base de datos sysusers. Si existe una, se otorga el acceso como invitado. De no ser as, se niega el acceso.
Funciones
Hemos propuesto hasta ahora la discusin acerca de las funciones, ya que enlazan todo lo dems en SQL Server 2000. Puede pensar en las funciones como grupos de con los grupos de Windows NT/2000. Las funciones de SQL Server le permiten combinar nombres de usuarios de base de datos en agrupaciones. No importa si los nombres de usuarios de base de datos se derivan de grupos de Windows 2000, usuarios de Windows 2000 o inicios de sesin de SQL Server. Las funciones pueden incluso contener otras funciones como miembros.
La funcin public
En cada base de datos, SQL Server 2000 contiene una funcin integrada de nombre public. Todos los usuarios, grupos y funciones son miembros de la funcin public y no pueden quitarse. Piense en esta funcin como algo similar al grupo Todos de Windows 2000 (vindolo desde el punto de vista tcnico, en realidad es como el grupo Usuarios autentificados, ya que ha sido validado primero por SQL Server). Es un atajo conveniente el referirse a todos los usuarios sin tener que nombrarlos explcitamente.
Funciones de servidor El inicio de sesin sa es todopoderoso y puede realizar cualquier cosa que desee en una instancia de SQL Server. Aunque esto es cierto, en realidad se debe a que el inicio de sesin sa es miembro de la funcin de servidor llamada sysadmin. SQL Server tiene ocho funciones de servidor. En cualquier momento, puede hacer que un inicio de sesin sea miembro de una o ms de estas funciones de servidor. Sin embargo, no puede aumentar ni disminuir la lista de funciones de servidor disponibles. Por ejemplo, no puede quietar a sa de la funcin de servidor sysadmin.
Funciones de servidor disponibles
La siguiente lista describe el conjunto completo de funciones de servidor disponibles. Estdielas detalladamente para saber cundo utilizarlas:
sysadmin- Los miembros de esta funcin pueden hacer cualquier cosa en SQL Server. Aparecen como dbo de todas las bases de datos (aunque no lo sean). Esencialmente redefinen los permisos y sistemas de seguridad. serveradmin- Los miembros de esta funcin pueden establecer opciones de configuracin con el procedimiento almacenado de sistema sp_configure y pueden apagar el servidor. Tambin pueden configurar el servicio Bsqueda de Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital texto. Los operadores de servidor son buenos candidatos para ser miembros de esta funcin. setupadmin- Los miembros de esta funcin pueden instalar y configurar servidores vinculados y marcar un procedimiento almacenado para ejecutarse al inicio. securityadmin- Los miembros de esta funcin pueden crear y controlar inicios de sesin de servidor, y permisos para crear bases de datos. Pueden configurar opciones de seguridad de servidores vinculados. Tambin pueden cambiar las contraseas de los inicios de sesin de SQL Server (excepto las de los miembros de la funcin sysadin). De nuevo, los operadores son candidatos para esta funcin, y es muy probable que su personal de apoyo tambin pertenezca a esta funcin. processadmin- Los miembros de esta funcin pueden controlar procesos que estn ejecutndose en el servidor de bases de datos. En este proceso generalmente implica terminar consultas descontroladas, y el personal de apoyo podra necesitar este derecho. dbcreator- Los miembros de esta funcin pueden crear, alterar, y quietar bases de datos en su servidor. Tambin pueden restaurar cualquier base de datos de su servidor. Los DBA sea miembro de la funcin sysadmin). bulkadmin- Los miembros de esta funcin pueden ejecutar la instruccin BULK INSERT. Aprender ms acerca de BULK INSERT el da 19, Cmo migrar datos entre servidores de bases de datos. diskadmin- Los miembros de esta funcin pueden administrar archivos y el crecimiento de los mismos en el servidor. Sin embargo, los comandos que pueden utilizar son ms que nada por cuestiones de compatibilidad con SQL Server 6.5, por lo que probablemente no utilice esta funcin con frecuencia. Los DBAs son buenos candidatos para esta funcin (si no desea que su DBA sea miembro de la funcin sysadmin).
Cmo asignar un inicio de sesin a una funcin de servidor
Para asignar un inicio de sesin a una funcin de servidor especfica, puede utilizar el Administrador corporativo de SQL Server o el procedimiento almacenado de sistema sp_addsrvrolemember:
iniciodesesin Es el ID de inicio de sesin de SQL Server que se va a agregar a la funcin. funcin es el nombre de la funcin de servidor a la que desea que se asigne el inicio de sesin.
Un solo inicio de sesin puede pertenecer a cero, una o ms funciones. Sin embargo, la funcin sysadmin equivale a todas las dems tanto de servidor como las especficas de la base de datos- por lo que no necesita asignar ninguna otra funcin si selecciona la funcin sysadin. Para quitar un inicio de sesin de una funcin de servidor, utilice el procedimiento almacenado de sistema sp_dropsrvrolemember: Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Sp_dropsrvrolemember [@loginame =] inicio de sesin, [@rolename =] funcin
En esta sintaxis: iniciodesesin es el ID de inicio de sesin de SQL Server que se va a quitar de la funcin. Funcin es el nombre de la funcin de servidor de la que se va a quitar el inicio de sesin.
Salida SERVIDORNT\Bob quitado de la funcin securityadmin
Para lograr los mismos cambios con el Administrador corporativo de SQL Server, expanda su servidor, expanda la carpeta Seguridad y luego seleccione y resalte el elemento de men Funciones del servidor (el icono que tiene una llave). El panel derecho contiene las ocho funciones de servidor. Haga doble clic en Security Administrators para ver el cuadro de dilogo Propiedades de la funcin del servidor. Haga clic en Agregar y aparecer una lista de inicios de sesin vlidos. Seleccione SERVIDORNT \Bob (o el equivalente en su servidor), haga clic en Aceptar Una vez que haga clic de nuevo en Aceptar, habr logrado lo mismo que al ejecutar el procedimiento almacenado de sistema sp_addsrvrolemember, slo que esta ve utiliz la interfaz grfica.
Funciones de base de datos
Cada base de datos tambin contiene funciones. Algunas de estas funciones son fijas, y usted tambin puede agregar sus propias funciones (a diferencia de las funciones de servidor). Tenga en mente que estas funciones de base de datos son especficas para la base de datos, por lo que no puede tener funciones que afecten a ms de una sola base de datos en un momento dado. Sin embargo, puede crear las mismas funciones en cada base de datos.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Funciones fijas especficas de la base de datos
Cada base de datos tambin tiene un conjunto de funciones fijas de base de datos a las que se puede asignar un nombre de usuario. Hay nueve funciones de manera predeterminada, y stas siempre existen (no puede eliminarlas). Cada funcin de base de datos, al igual que cada funcin de servidor mencionada anteriormente, asigna permisos y capacidades especficas a los usuarios.
db_owner- Los miembros de esta funcin pueden hacer cualquier cosa pero slo dentro de su base de datos. Ser un miembro de la funcin db_owner proporciona a un usuario casi los mismos derechos y permisos que los del usuario dbo de una base de datos (el propietario). La excepcin implica al comando restore. db_accessadmin- Los miembros de esta funcin pueden otorgar o quitar a los usuarios el acceso a la base de datos (por ejemplo, ejecutando el procedimiento almacenado de sistema sp_grantdbaccess). db_securityadmin- Los miembros de esta funcin pueden controlar todos los permisos, funciones, membresa de funciones y propietarios de objetos en la base de datos. db_ddladmin- Los miembros de esta funcin pueden crear, modificar y quitar todos los objetos de base de datos, pero no pueden ejecutar comandos relacionados con la seguridad (Grant, revoke, deny). Aprender ms acerca de estos comandos en la leccin de maana. db_backupoperator- Los miembros de esta funcin pueden ejecutar comandos DBCC seleccionados, as como los comandos checkpoint y backup. db_datareader- Los miembros de esta funcin tienen el permiso de seleccionar todos los datos en cualquier tabla, vista o funcin de la base de datos. db_datawriter- Los miembros de esta funcin tienen derechos de insercin, actualizacin y eliminacin en cualquier tabla o vista de la base de datos. db_denydatareader- Los miembros de esta funcin no pueden seleccionar datos de ninguna tabla, vista o funcin de la base de datos. db_denydatawriter- Los miembros de esta funcin no pueden modificar datos de la base de datos con las instrucciones insert, update o delete en ninguna tabla o vista de la base de datos.
Funciones de base de datos definidas por el usuario
Adems de las funciones fijas de base de datos disponibles, usted puede crear funciones y luego asignarles usuarios o funciones. Los motivos para crear funciones en una base de datos de SQL Server son los mismos que para crear un grupo de Windows 2000 para agrupar manera conveniente a los usuarios que realizan funciones similares. Debe crear tantas funciones como sea necesario. No hay restricciones en cuanto al nmero de funciones de las que un usuario pueda ser miembro, y las funciones pueden ser miembros de otras funciones. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Para crear una funcin, empiece con el procedimiento almacenado de sistema sp_addrole:
funcin es el nombre deseado para la nueva funcin propietario es el nombre de usuario de SQL Server que va a ser propietario de la funcin (cada usuario puede tener sus propias funciones). El valor predeterminado es dbo, y es muy probable que eso sea exactamente lo que usted desee que ocurra.
Slo los miembros de la funcin de servidor sysadin o de las funciones de base de datos db_owner o db_securityadmin pueden agregar una nueva funcin a la base de datos. Esto tambin se aplica para quitar funciones. Hay algo raro en cuanto a las funciones: aunque puede especificar el nombre del propietario, el nombre de la funcin debe ser nico en la base de datos. Por lo tanto, no necesita saber quin es el propietario al quitar una funcin, ya que el nombre es nico en la base de datos. Para quitar una funcin de una base de datos, ejecute el procedimiento almacenado de sistema sp_droprole:
Sp_droprole [@rolename =] funcin
En esta sintaxis, funcin es el nombre de la funcin creada por el usuario que desea eliminar. No puede eliminar una funcin si tiene usuarios u otras funciones como miembros. Tampoco puede eliminar la funcin si posee algn objeto. Aprender ms acerca de la propiedad de objetos en la leccin de maana. Esto trae a consideracin otra pregunta interesante: Cmo se agregan usuarios a una funcin? Utilice el procedimiento almacenado de sistema sp_addrolemember para agregar usuarios a las funciones de base de datos fijas o definidas por el usuario:
funcin es el nombre de la funcin a la que desea agregar un usuario. cuenta_basededatos es el nombre de usuario, de grupo o de funcin que desea agregar a esta funcin.
Para quitar a un miembro de una funcin ejecute sp_droprolemember:
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital funcin es el nombre de la funcin a la que desea quitar un usuario. cuenta_basededatos es el nombre de usuario, de grupo o de funcin que desea quitar de esta funcin.
El siguiente cdigo muestra cmo se pueden utilizar estos procedimientos almacenados. Para agregar una nueva funcin en la base de datos pubs y luego asignarle un usuario, ejecute este cdigo:
Entrada Use pubs Exec sp_addrole Administracion Exec sp_addrole Operaciones Exec sp_addrolemember Administracion, Don Exec sp_addrolemember Operaciones, SERVIDORNT\Mercadotecnia
Deben aparecer los siguientes mensajes en la salida:
Salida Agregada la nueva funcin. Agregada la nueva funcin. Don agregado a la funcin Administracion. SERVIDORNT\Mercadotecnia agregado a la funcin Operaciones.
Observe que si trata de quitar una funcin con miembros, se producir un error:
Exec sp_droprole Operaciones
Este error produce el siguiente mensaje:
Servidor: mensaje 15144, nivel 16, estado 1, procedimiento sp_droprole, lnea 53 la funcin tiene miembros. Debe estar vaca antes de quitarla. Name . SERVIDOR\Mercadotecnia
Incluso SQL Server le indica cules miembros permanecen en la funcin. Para quitar esos miembros, ejecute lo siguiente:
Este mensaje de salida indica que la operacin tuvo xito:
Salida SERVIDORNT\Mercadotecnia quietado de la funcin Operaciones. Funcin quitada.
La membresa en cada funcin se guarda en una combinacin de las tablas de sistema sysusers y sysmembers. Puede examinar qu funciones existen ejecutando el procediendo almacenado de sistema sp_helprole o sp_helprolemember. Ambos procedimientos almacenados toman un solo parmetro: el nombre de la funcin entre comillas. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Puede lograr los mismos resultados utilizando el Administrador corporativo de SQL Server. Vaya a la entrada Inicios de sesin de la carpeta Seguridad de su servidor y haga doble clic en un inicio de sesin, o haga clic con el botn derecho del ratn y seleccione la opcin Propiedades del men contextual. Eleg SERVIDORNT\Bob para el siguiente ejemplo. Aqu tambin puede configurar funciones de servidor, en la ficha Funciones del servidor. Sin embargo, por ahora nos enfocaremos en la ltima ficha, Acceso a base de datos. Seleccin y resalte la base de datos pubs, y deber aparecer una lista de funciones en la ventana Funciones de base de datos. No slo aparecen todas las funciones fijas de base de datos, sino que tambin aparecer sus funciones creadas por el usuario. Deslcese al final de la lista hasta encontrar la funcin Administracin. Para hacer que este usuario de base de datos sea miembro de una funcin, simplemente marque la casilla que est enseguida del nombre de la funcin. Para quitarlo de la funcin, desmarque la casilla. As de simple!. Para crear una nueva funcin con el Administrador corporativo de SQL Server. Expanda la carpeta Bases de datos y luego expanda la base de datos con la que va a trabajar. Para este ejemplo, expanda la base de datos pubs. Luego seleccione y resalte la entrada Funciones y aparecer la lista de funciones en el panel derecho. Para agregar una nueva funcin, haga clic con el botn derecho del ratn en el espacio en blanco del panel derecho y seleccione la opcin nueva funcin de base de datos. Agregue una nueva funcin llamada Finanzas, que tenga a SERVIDORNT/Bob como miembro. Cuando termine, haga clic en Aceptar para finalizar la creacin de la funcin. Aprender ms acerca de la opcin Funcin de aplicacin en la siguiente seccin.
Funciones de aplicacin
Las funciones de aplicacin son una caracterstica muy til de SQL Server 2000. Aunque puede pensar que las funciones de aplicacin son similares a las dems funciones que hemos visto, realizan una funcin distinta de las dems funciones. Las funciones de aplicacin sirven para algunos de los mismos propsitos de las otras funciones; usarlas es una estupenda manera de agrupar usuarios, de manera que puedan aplicarse los permisos en un nivel superior a mantenerlos para cada usuario. Sin embargo, son distintas en cuanto a que pueden ser activadas por una aplicacin. Una vez que una aplicacin activa una funcin de aplicacin, se suspenden todos los permisos del usuario, y slo se hacen valer los permisos de la funcin. Desde luego que la funcin requiere de una contrasea para ser habilitada con xito (a menos que usted no quiera una contrasea). Una aplicacin de nmina es un excelente ejemplo del uso de las funciones de aplicacin. Aunque todos los administradores del departamento de nminas deben actualizar la informacin acerca del salario de los empleados y las bonificaciones en forma peridica, para usted preferible que utilicen su aplicacin en lugar de que consulten directamente la base de datos de SQL Server (con consecuencias potencialmente desastrosas). Al iniciar la aplicacin, puede hacer que los usuarios se conecten con SQL Server como ellos mismos (ya sea con inicios de sesin de SQL Server o preferiblemente con sus credenciales de Windows 2000, para que no se den cuenta de que se estn conectando). Luego puede ejecutar el cdigo apropiado (el procedimiento almacenado de sistema sp_setapprole) para activar la funcin de la aplicacin de nmina. A partir de ese momento, y hasta que la aplicacin termine su conexin a la base de datos, se hacen valer los permiso de la funcin y se desactivan los Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital permisos de los usuarios. Por lo tanto, si la funcin de nmina tiene permiso para modificar las tablas de la nmina, pero los administradores de la nmina no, usted an puede hacer que ejecuten la aplicacin. Mejor an, ellos no pueden evadir conscientemente (inconscientemente) cualquier tipo de seguridad o controles que usted tenga con su aplicacin. Lo mejor de todo es que se utiliza la informacin de inicio de sesin de los usuarios para llevar una auditora de todas las actividades. Las funciones de aplicacin son muy interesantes. Ahora veamos la forma de implementarlas. Pienso que estar de acuerdo en que son relativamente simples, considerando lo poderosas que son. En la leccin de maana aprender cmo asignar permisos a las funciones. Primero, cree una funcin de aplicacin utilizando el procedimiento almacenado de sistema sp_addapprole:
Funcin es el nombre de la funcin que desea habilitar. Contrasea es la contrasea especificada en la ejecucin de sp_addapprole. Encrypt N contrasea solicita que se cifre la contrasea al enviarse a travs de la red (si slo especifica la contrasea, se enva a travs de la red sin cifrarse). Estilo_cifrado especifica el tipo de cifrado a utilizar. Actualmente puede elegir entre dos valores disponibles: none y obvc. ODBC (Conectividad Abierta de Bases de Datos) se especifica cuando se utiliza un cliente basado en ODBC y significa que se utilizar la funcin cannica Encrypt de ODBC para cifrar la contrasea antes de enviarla a travs de la red.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Para crear y luego utilizar una funcin de aplicacin, puede ejecutar la siguiente secuencia de comandos dentro del Analizador de consultas de SQL Server (una herramienta basada en ODBC):
Entrada Use pubs Exec sp_addapprole Nomina, contrasea Go Exec sp_setapprole Nomina, {Encrypt N contrasea}, odbc
Recibir los siguientes mensajes:
Salida Agregada la nueva funcin de aplicacin. La funcin de aplicacin Nomina est activa.
De aqu en adelante, todos los permisos para esta conexin con SQL Server utilizarn los permisos de la funcin de aplicacin. La auditora de la actividad realizada an se muestra con la informacin de inicio de sesin de un usuario individual, no con la funcin de aplicacin. Por lo tanto, an puede saber lo que est haciendo un individuo, incluso auque l mismo haya habilitado esta funcionalidad de grupo.
Tipos de datos y creacin de Tablas
En esta leccin aprender a agregar tablas a sus bases de datos. Primero veremos una descripcin general de las tablas y luego los distintos tipos de datos utilizados para crear sus tablas. Despus aprender a colocar toda la informacin en conjunto para crear y modificar tablas en su base de datos, utilizando cdigo. Luego veremos cmo Microsoft ha simplificado el proceso de la codificacin al permitirle crear tablas en forma grfica con el Administrador corporativo de SQL Server.
Tablas
Las tablas guardan todos los datos en su base de datos y estn organizadas en filas y columnas (registros y campos). Cada columna de su tabla puede guardar un tipo especfico de informacin, o tipo de datos. Una tabla individual representa una entidad en su base de datos. Cada fila de la tabla representa una ocurrencia de esa entidad. Las columnas en su tabla describen los atributos de esa entidad lgica. Por. Ejemplo, podra crear una tabla de empleados (en la que los empleados son una entidad lgica). Una fila individual en la tabla empleados representa una instancia individual de un empleado. Las columnas que forman esa tabla describe al empleado. Algunas columnas que podra incluir son IDEmpleado, Nombre, ApellidoPaterno y NSS (Nmero de Seguro Social).
Columnas
Cada columna (campo) de su tabla debe tener asignado un nombre,. Un tipo de datos, una longitud (opcional), una intercalacin (opcional) y un estado de nulidad. Puede colocar columnas en cualquier orden en su definicin de tabla. Cada columna Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital tambin debe tener un nombre nico dentro de la tabla, y debe seguir las reglas de los identificadores de SQL Server (las cuales se describen en la siguiente seccin). Una base de datos individual puede contener hasta 2mil millones de tablas, y cada tabla puede guardar hasta 1,024 columnas. La longitud mxima de cualquier fila es de 8,192 bytes, menos la sobrecarga inherente en el almacenamiento fsico de las filas en SQL Server. Esta sobrecarga vara, dependiendo de muchos factores. Por lo tanto, nos limitaremos a decir que la cantidad mxima de espacio de almacenamiento de datos es de 8,060 bytes por fila. La longitud mxima de una columna individual es de 8,000 bytes, y se pueden tener hasta 1.024 columnas en una fila; sin embargo, una fila no puede ser mayor que una pgina datos (8,192 bytes), incluyendo datos y sobrecarga. La excepcin es para los tipos de datos text e image, los cuales permiten hasta 2 GB de informacin de texto o binaria. NO se guardan fsicamente como parte de una fila de tabla, por lo que no cuentan en la restriccin de que una fila de datos debe caber en una pgina de datos individual. Ms adelante conocer ms detalles en relacin con las longitudes de columna y la sobrecarga de tablas y de filas.
Identificadores de SQL Server
Todos los nombres de tablas de SQL Server, as como los nombres de columnas y cualquier otro nombre de objeto, deben seguir estas reglas para los identificadores de SQL Server: Los identificadores pueden tener una longitud de 1 a128 caracteres Unicode, incluyendo letras, smbolos y nmeros. El primer carcter debe ser una letra o uno de los siguientes smbolos: @, #, o _ (guin bajo). Los smbolos @ y #tienen significado especial en SQL Server. Puede utilizar los siguientes smbolos despus del primer carcter: #, y _. Los identificadores que empieza con el smbolo @ se utilizan como variables locales. El smbolo @ puede aparecer slo como el primer carcter en un identificador. Los identificadores que empiezan con el smbolo #se utilizan para indicar que los objetos que estn creando son temporales y el usuario puede hacer referencia a ellos durante la sesin. Los identificadores que empiezan con ##indican que los objetos que estn creando son objetos globales temporales y todos los usuarios de la base de datos pueden hacer referencia a ellos. Puede utilizar espacios incrustados en sus identificadores, pero para hacer referencia a esos objetos debe encapsularlos ya sea en comillas dobles o en corchetes. Por ejemplo, en una taba llamada PensionEmpleado, habra que hacer referencia a la misma como PensionEMpleado o [PensinEmpleado] en la base de datos. Es preferible el uso de los corchetes (si insiste en utilizar espacios en sus nombres de identificadores) para no confundir las cadenas constantes con identificadores de SQL Server.
La tabla 2.1 muestra algunos ejemplos de identificadores vlidos y no vlidos.
Tabla 2.1 Identificando vlidos y no vlidos
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Identificador Comentarios
1001 Noches Identificador invlido. Los identificadores deben empezar con una letra. @Direcciones Este identificador es vlido slo para crear una tabla. Tabla@Direccion Identificador invlido. El smbolo @ slo puede ser el primer carcter en un identificador. #tblCiudades Este identificador es vlido slo si va a crear un objeto temporal. Este objeto est disponible slo para el usuario que lo cre. ##tblCiudades Este identificador es vlido slo si va a crear un objeto global temporal, el cual est disponible para todos los usuarios. TblEmpleado Identificador vlido. Aunque los prefijos en los identificadores (tbl de tabla) no son necesario, facilitan la lectura de sus instrucciones de SQL, ya que el prefijo denota lo que el identificador representa. Otros identificadores comunes son qry para consulta, tr para desencadenador, sp_ para procedimientos almacenados de sistema, etctera.
Titulos, Autor_Resenia Estos identificadores son vlidos
Tipos de datos
El tipo de datos especifica el tipo de informacin (numrico, carcter, etctera) y cunto espacio ocupa esa informacin en una columna especfica. Algunos tipos de datos tienen una longitud variable, mientras que otros tienen una longitud fija. Los tipos de datos de SQL Server pueden dividirse en los siguientes grupos: cadenas, datos Unicode, binarios, enteros, numricos con aproximacin y exactos, especiales, de fecha y hora, monetarios, de incremento automtico, sinnimos, definidos por el usuario, y de columna calculada. La tabla 2.18 muestra los distintos tipos de datos permitidos en SQL 2000.
Tabla 2.2 Tipos de datos soportados en SQL Server 2000 Categora Tipo de datos Comentarios
Cadena char (n), varchar (n) Guarda cadenas de caracteres. Binario binary (n), Guarda informacin binaria Varbinary (n) de 2 bytes. Entero int, smallint, Guarda valores enteros. Bigint, tinyint Numrico flota, real Guarda informacin numrica aproximado aproximada. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Numrico exacto decimal, numeric Guarda informacin numrica exacta. Especial bit, text, image. Guarda informacin de Sql_variant, table de carcter de un solo bit mayor De 8.000 bytes, o datos de imagen sql_variant guarda casi cualquier cosa, y table guarda tablas. Fecha y hora datetime, Guarda fechas y horas. smalldatetime Monetario money, Guarda valores monetarios. smalmoney Incremento automtico rowversion Guarda valores que son tipos de datos que son incrementados o establecidos automticamente por SQL Server. Sinnimos (Vea la tabla 2.9) Asigna tipos de datos ANSI a tipos de datos de SQL Server. Datos Unicode nchar,ntext,nvarchar Guarda los datos en formato Unicode (doble byte por carcter almacenado). Definido por el usuario Puede crear sus propios tipos de datos para guardar informacin. Columnas calculadas Guarda la expresin utilizada para calcular la columna. No guarda los slo las expresiones utilizadas para crearlos.
Nulidad
La nulidad de una columna se refiere a si se requiere o no una entrada para esa columna, Si desea permitir que una columna indique que el valor es desconocido, especifique NULL. Si desea insistir que cada fila tenga una entrada en esa columna, especifique NOT NULL. Si no especifica NULL o NOT NULL, se utiliza el valor predeterminado APRA la base de datos (o la conexin de SQUL Server). Al instalar por primera vez SQL Server, el valor predeterminado en cada base de datos es que las columnas se creen con la opcin NOT NULL. Como con la mayora de las opciones en SQL Server, esta opcin predeterminada puede modificarse, incluso de conexin en conexin . Por lo tanto, siempre es una excelente idea especificar si desea que una columna tenga el atributo NUL O NOT NULL
Intercalacin
Tambin puede especificar una intercalacin para una columna de datos individual en su tabla. Si no especifica un nombre de intercalacin, SQL Server utiliza la intercalacin predeterminada de la base de datos.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Cadenas
Las cadenas contienen datos de tipo carcter y estn compuestos de letras, nmeros y smbolos. Puede guardar este tipo de datos ya sea en un formato de longitud fija o de longitud variable, utilizando las palabras clave char (n) o varchar (n). Puede guardar un mximo de 8,000 caracteres en estos tipos de datos. Al crear un campo de longitud fija (char), especfica que este campo siempre contendr n bytes de informacin. Si los datos que introduce en el campo son menos de n, el campo se rellena con espacios para que siempre ocupe n bytes. Si trata de colocar ms de n bytes datos en el campo, sus datos se truncan. La tabla 2.3 muestra algunos ejemplos sobre cmo introducir datos en un campo declarado como sNombre char (8). (El smbolo *denota un espacio en este ejemplo.)
Tabla 2.3 Campos de caracteres de longitud fija
Datos introducidos sNombre Contiene
Laureano Laureano Marco Antonio Marco An Denise Denise**
Al utilizar campos de longitud variable (varchar) especifica la longitud mxima que puede tener el campo, pero, a diferencia de los campos de longitud fija, los campos de longitud variable no se rellenan con espacios. El uso de este tipo de campo puede hacer que su base de datos utilice la memoria con ms eficiencia, pero se paga un pequeo precios en el rendimiento. Cuando se declara un campo como de longitud variable, SQL Server debe terminar en dnde acaba el campo y empieza el siguiente. La sobrecarga adicional se asocia con los campos de Longitud variable en forma de bytes agregados a las filas y a la tabla. Varchar es til cuando se espera una amplia variacin en el tamao de los datos, o cuando se van a permitir valores nulos en su campo. Al escribir datos de tipo carcter en SQP Server, debe encerrar los datos en comillas sencillas o dobles. Son preferibles las comillas sencillas, para que no haya confusin entre constantes de cadena e identificadores de SQL Server. Para escribir NULL en un campo en SQL Server, utilice la palabra clave NULL sin comillas. El listado 2.1 muestra un ejemplo de la creacin de una tabla utilizando las palabras clave char y varchar. Listado 2.1 Uso de char y de varchar
CREATE TABLE tblClientes ( strIDCliente char (8) NOT NULL, strNombreCliente (varchar (30) NOT NULL Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital strCorreoE varchar (50) )
Datos binarios
El tipo de datos binary guarda datos binarios. Estos datos se guardan como una serie de 1s y 0s, los cuales se representan en l entrada y salida como pares hexadecimales. Estos pares hexadecimales estn compuestos de los caracteres del 0 al 9 y de la A a la F. Por ejemplo, si crea un campo tal como binUnosDatos binary (20), est especificando que va a tener 20 bytes de datos binarios. Al igual que con los tipos de datos de cadena, puede especificar un mximo de 8.000 bytes tanto para los tipos de datos binary (n) como varbinary (n). Si utiliza el tipo de datos binary (n), la informacin que escriba se rellena con espacios (0x20). El tipo de datos varbinary (n) no se rellena. Si trata de escribir datos con una longitud mayor de la mxima especificad, los datos se truncan. Para introducir datos en un tipo de datos binary, anteponga un 0x a la cadena. Por ejemplo, para escribir el valor 10 en un campo binario, utilizara un prefijo de la siguiente manera: 0x10.
Los cuatro tipos de datos enteros son bigint, int, smallint y tinyint, los cuales guardan valores escalares exacto. La diferencia entre los tipos de datos enteros es la cantidad de espacio de almacenamiento que requieren y el rango de valores que pueden guardar. La tabla 9.4 muestra los tipos de datos enteros y sus rangos.
Considere estas declaraciones de ejemplo: bytEempleadoEdad tinynt NULL intIDEmpleado smallint NOT NULL IngIDCliente int NOT NULL bigIDPedidoWeb bigint NOT NULL
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Tipos de datos numricos aproximados y exactos
SQL Server permite ambos tipos de datos aproximados (float y real), as como tipos de datos numricos exactos (decimal y numeric). Al declarar tipos de datos aproximados, se especifica una precisin que vive siendo el nmero mximo de dgitos permitidos en ambos lados del punto decimal. Al declarar un tipo de datos exacto, tambin debe especificar una escala, que viene siendo el nmero total de dgitos permitidos en el lado derecho del punto decimal.
Tabla 2.5 Requerimientos de precisin y almacenamiento
Precisin Almacenamiento
1-9 5 10-19 9 20-29 13 30-38 17
Tipos de datos numricos aproximados
Los tipos de datos numricos aproximados son float y real. Los nmeros guardados en estos tipos de datos estn compuestos de dos partes: la mantisa y el exponente. El algoritmo utilizado para producir estas dos partes no es exactamente preciso. En otras palabras, tal vez no reciba lo que introduce exactamente. Esto se convierte en un problema slo cuando la precisin del nmero almacenado se acerca a la precisin especificada en el tipo de datos. Por ejemplo, la precisin permitida para los nmeros de punto flotante (float) es de hasta 38 dgitos. Los nmeros de punto flotante y los reales son tiles para datos cientficos y estadsticos para los que no es necesaria una precisin absoluta, pero los valores varan desde nmeros extremadamente pequeos hasta nmero extremadamente grandes. Los nmeros reales tienen una precisin de siete dgitos y requieren 4 bytes para su almacenamiento. Si declara un tipo float y especifica una precisin de menos de 7, en realidad est creando un tipo de datos real. Los valores tipo float pueden tener una precisin desde 1 hasta 38. De manera predeterminada, un tipo float tiene una precisin de 15 dgitos, si no se especifica otro valor. Puede realizar todos los clculos en un tipo float, excepto la operacin mdulo (la cual devuelve el residuo entero de una divisin de enteros). Vamos a suponer que crea el siguiente tipo de datos: sunUnValor real
Puede guardar los nmeros 188,445.2 o 1,884.452, pero no los valores 188,455.27 ni 1,884.4527, ya que son mayores que la precisin predeterminada de siete dgitos. Para guardar estos valores ms grandes, debe crear una variable de tipo float con una precisin lo suficientemente grande como para guardar todos los dgitos. Como se requieren 8bytes de almacenamiento, debe declarar su tipo de datos as:
dblUnValor float (8) Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Tipos de datos numricos exactos
Los tipos de datos numricos exactos son decimal y numeric. La precisin se preserva hasta el digito menos significativo. Cuando declara un tipo de datos numrico exacto, debe especificar tanto una precisin como una escala. Si no especifica una precisin y una escala, SQL Server utiliza los valores predeterminados 18 y 0. Si declara una columna como decimal (7,2), sta puede guardar los nmeros 1000.55 y 11000.55 pero no los nmeros 11110000.55 ni 1100.5678. Si intenta colocar un nmero mayor de lo permitido por la precisin y la escala, el nmero se trunca. El listado 2.2 muestra un ejemplo del uso de tipos de datos numricos exactos.
Existen varios tipos de datos que simplemente no entran en ninguna de las otras categoras. Los he agregad aqu, en la seccin Tipos de datos especiales. Aprender acerca del tipo de datos bit y acerca de los dos tipos de datos BLOB (objeto binario grande), text e image, as como del tipo de datos RowGUID.
Bit
El tipo de datos bit es un tipo de datos lgico utilizado para guardar informacin de carcter booleano. Los tipos de datos booleanos se utilizan como indicadores para denotar cosas como encendido/apagado, verdadero/falso y s/no. Los valores que se guardan aqu son 0 o 1. Las columnas bit pueden ser NULL (desconocido) y no pueden indicase. Los tipos de datos bit requieren de un solo byte de espacio de almacenamiento. Si tiene varias columnas bit definidas en una tabla, SQL Server agrupa automticamente hasta ocho campos de bit ente s en un solo byte de espacio de almacenamiento. Considere estos ejemplos acerca del uso del tipo de datos bit:
boolSexo bit NOT NULL bool Pagadoo bit NULL boolImpreso bit NOT NULL
Text e image Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Los tipos de datos text e image se utilizan cuando los requerimientos de almacenamiento se exceden del lmite de 8,000 caracteres por columna. Estos tipos de datos se conocen comnmente como BLOBs. Los tipos de datos text e image pueden guardar hasta 2GB de datos binarios o de texto por declaracin. Al declarar un tipo de datos text o image, se agrega a la fila un apuntador de 16 bytes. Este apuntador de 16 bytes apunta a una pgina de datos separada de 8 KB, en donde se aguarda informacin adicional acerca de sus datos. Si sus datos se exceden de los 8 KB de una pgina de datos, se crean apuntadores para que apunten a las pginas adicionales de su BLOB. El almacenamiento y la recuperacin de datos tipo text e image pueden estropear el rendimiento de su base de datos, ya que se aplican grandes cantidades de datos a sus registros de transacciones durante las inserciones, actualizaciones y eliminaciones. Puede solucionar este problema utilizando el comando WRITETEXT, ya que ste aplica modificaciones a los datos sin crear una entrada correspondiente en el registro de transacciones.
Una alternativa a los grandes requerimientos de almacenamiento de los tipos de datos text e image es guardar esos elementos como archivos separados, y luego guardar la ruta hacia esos archivos en su base de datos.
A continuacin se muestran algunas declaraciones de ejemplo de los tipos de datos text e image:
imgFotoEmpleado image imgContratosDigitalizados image strDescripcion text strComentarios text
RowGUID
Cuando se utiliza la duplicacin de mezcla, como se describe en los das 16, Comprensin de las metodologas de diseo de duplicacin, y 17, implementacin de las metodologas de duplicacin, cada columna de sus tablas duplicadas debe tener un identificador nico. Puede lograr esto creando una columna en cada tabla duplicada como un tipo de datos uniqueidentifier. Este tipo de datos uniqueidentifier tiene una propiedad llamada ROWGUIDCOL. Cuando la propiedad ROWGUIDCOL es modificada por SQL Server. De esta manera, las filas duplicadas de dos bases de datos pueden rastrearse en forma separada.
Puede inicializar los GUIDs de dos maneras: Utilice la funcin NEWID. Convierta una constante de cadena en dgito hexadecimal del tipo xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx. Ahora, considere este ejemplo de RowGUID vlido: 8FE17A24-B1AA-23DA-C790-2749A3E09AA2.
Puede utilizar los siguientes operadores de comparacin con sus tipos de datos uniquidentifier: =, <>, IS NULL e IS NOT NULL.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Sql_variant
El tipo de datos sql_variant es similar al tipo de datos variante de Visual Basic. El tipo de datos sql_variant le permite guardar casi cualquier otro tipo de datos de SQL Server. Las excepciones son ntext, timestamp y sql_variant. Puede utilizar estos tipos de datos dentro de columnas, como variables en un comando DECLARE, como parmetros ya como los resultados de las funciones definidas por el usuario. Se aplican algunas reglas especiales al comparar los tipos de datos sql_variant. Cada tipo de datos en SQL Server se coloca dentro de una familia de tipos de datos, como se muestra en la tabla 2.6.
Se aplica una regla especial al tipo de datos sql_varian: cuando se comparan dos tipos de datos sql_variant de familias distintas, la familia con el tipo de base de datos que tenga una posicin ms alta en la tabla 9.6 se considera como el valor mayor. Por ejemplo, si guarda un tipo float en un tipo de datos sql_variant y un valor binario en otro, al hacer su comparacin con el valor foat, siempre se evala con un valor mayor que el binario. El tipo de datos sql_variant es tan nuevo que es difcil definir exactamente dnde y cundo debe utilizarse. Para obtener informacin adicional acerca del tipo de datos sql_variant, vea los Libros en pantalla de SQL Server.
Tipos de datos de fecha y hora
Los datos de fecha y hora pueden guardarse en un tipo de datos datetime o smalldatetime. Observe que la fecha y hora siempre se guardan juntas en un solo valor. los datos de fecha y hora pueden tener varios formatos distintos. Puede especificar el mes utilizando el nombre completo o una abreviacin. No hay diferencia entre el uso de maysculas o minsculas, y las comas son opcionales.
Considere estos ejemplos que utilizan los formatos alfabticos para Abril 15, 2001: Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Abr 15 2001 Abr 15 01 Abr 01 15 15 Abr 01 2001 abril 15 2001 15 Abril
Las fechas guardadas en el tipo de datos datetime se guardan hasta los milisegundos. En este caso, se utilizan 8 bytes -4 para el nmero de das transcurridos desde enero 1, 1900, y 4 para el nmero de segundos transcurridos desde media noche. (las fechas anteriores a sta se guardan como nmeros negativos, por lo que el rango de fechas sera de 1/1/1753 hasta 12/31/9999.) La precisin de estas fechas es de 3.33 milisegundos.
El tipo de datos smalldatetime utiliza 4 byts. Las fechas guardadas de esta manera son precisas hasta los minutos. De manera interna, se utiliza un smallint (2bytes) para el nmero de das transcurridos desde enero 1, 1900; el otro smallint se utiliza para el nmero de segundos transcurridos desde medianoche. El rango para un smalldatetime es de 1/1/1900 hasta 6/6/2079.
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Moneda
Los dos tipos de datos monetarios son Money y smallmoney. Ambos tienen una escala de cuatro, lo que significa que guardan cuatro dgitos a la derecha del punto decimal. Estos tipos de datos pueden guardar informacin distinta de valores en dlares para uso internacional, pero en SQL Server no hay funciones disponibles reconversin monetaria. Al introducir datos monetarios debe anteponer un signo de dlares. La tabla 2.8 muestra los tipos de datos monetarios, sus requerimientos y sus rangos.
Como puede ver, smallmoney puede guardar hasta 10 dgitos con una escala de cuatro. El tpo de datos Money es lo suficientemente grande como APRA guardar la deuda nacional de los Estados Unidos, con valores que llegan a los cintos de billones. Estas declaraciones de ejemplo utilizan los tipos de datos monetarios:
curCuentasPorCobrar money curCuentasPorCobrar smallmoney El tipo de datos rowversin (timestamp) con incremento automtico
Rowversion es el nuevo nombre para el tipo de datos timestamp. Las etiquetas de hora se siguen soportando en SQL Server y estn en conformidad con el estndar ANSI SQL-99. En el resto de esta discusin, utilizaremos la palabra clavetimestamp en lugar de rowversion. Cada vez que agrega un nuevo registro a una tabla con un campo rowversion, se agregan automticamente valores de tiempo. Si realiza una actualizacin en una fila, rowversion tambin se actualiza automticamente a s mismo. El tipo de datos rowversion crea un valor actualizado automticamente, generado por SQL Server. Aunque rowversion se guardan como binary (8) para columnas NOT NULL o como varbinary (8) si la columna est marcada para permitir valores nulos. No puede tener ms de una columnatimestamp por fila.
Puede utilizar el tipo de datos timestamp para registrar el orden en el que se agregan y modifican elementos en su tabla. Esos ejemplos utilizan el tipo de datos timestamp:
timUltimaModificacion timestamp NOT NULL timLlamadaTelefonica timestamp NOT NULL
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Trabajo con ANSI y Unicode
Para asegurar que los tipos de datos de SQL Server concuerden con los tipos de datos ANSI (Instituto Estadounidense de Estndares Nacionales), puede utilizar los tipos de datos ANSI en lugar de los de SQL Server. La tabla 2.9 muestra los tipos de datos ANSI y sus equivalentes en SQL.
Tabla 2.9 Sinnimos de SQL Server
Tipo de datos ANSI Tipo de datos de SQL Server
Carcter char Carcter (n) char (n) Char varyng varchar Carcter varying (n) varchar (n) Binary varying varbinary Dec decimal Double precision float Foat (n) n =1 7 real Timestamp rowversion Integer int
Los datos Unicode utilizan el conjunto de caracteres Unicode UCS-2, el cual es un conjunto de caracteres de varios bytes. Cuando se utilizan caracteres ANSI comunes, se requiere 1 byte de datos para guardar cualquier carcter dado. Como resultado, ANSI se conoce algunas veces como estrecho. Unicode se conoce como conjunto de caracteres amplio, o de varios bytes. El conjunto de caracteres Unicode UCS-2 utiliza 2 bytes para representar un solo carcter. Es especialmente til cuando se tienen bases de datos con distintos lenguajes representados en su interior. Por ejemplo, los lenguajes ingls y espaol tienen un conjunto de letras que puede representarse fcilmente por un conjunto de caracteres de un solo byte. Ahora piense en un lenguaje como el japons. Incluso el japons estndar (Kana) contiene ms de 1,000 caracteres. Un byte estndar de 8 bits puede representar slo 256 caracteres, mientas que un carcter Unicode de 2 bytes puede representar 65,536 caracteres. Puede utilizar los tipos de datos nchar, nvarchar, y ntext para representar su informacin Unicode. nchar y nvarchar tienen un lmite mximo de 8,000 bytes o 4,000 caracteres. Por ejemplo, nchar (4000) es vlido, pero nchar (6000) representa 12,000 caracteres y no cabe en una sola pgina de datos. Su nchar (6000) debe dividirse ya sea en dos tipos de datos nchar separados o en un solo tipo de datos ntext. El tipo de datos ntext. Puede soportar hasta 2.14 GB de datos. Los tipos de datos Unicode son una caracterstica extremadamente poderosa SQL Server 2000. Si tiene planes de internacionalizacin o de utilizar SQL Server en pases que no utilicen ingls estadounidense, una excelente solucin es guardar sus datos con los tipos de datos Unicode. Es de esperarse que Unicode se convierta en el mecanismo de almacenamiento estndar, a medida que Windows NT y SQL Server se convierten en mejores soluciones internacionales. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
Creacin de tipos de datos definidos por el usuario
Puede crear tipos de datos definidos por el usuario para una base de datos especfica o para colocar en la base de datos model. Recuerde, la base de datos model es una plantilla para crear nuevas bases de datos. Al crear tipos de datos definidos por el usuario, puede hacerlos disponibles en todas las bases de datos subsecuentes. Para crear un tipo de datos definido por el usuario, debe utilizar los tipos de datos proporcionados por el sistema. Por ejemplo, puede crear un nuevo tipo de datos llamado IDEmpleado y definirlo como carcter o entero, pero no como un tipo de datos inexistente, como id_columna. Debe crear el tipo de datos definido por el usuario antes de agregarlo a una tabla. Para crear un tipo de datos definido por el usuario, puede utilizar el Administrador corporativo de SQL Server o el procedimiento almacenado de sistema sp_addtype. Para crear tipos de datos definidos por el usuario con SQL Server, utilice el procedimiento almacenado de sistema sp_addtype. Por ejemplo, para agregar los mismos tres tipos de datos definidos por el usuario a la base de datos pubs, ejecute los siguientes comandos de SQL:
Despus de declarar un tipo de datos definido por el usuario, puede utilizarlo todas las veces que quiera en su base de datos. Por ejemplo, Puede utilizar la siguiente instruccin CREATE TABLE:
Entrada CREATE TABLE tblEmpleado ( strIdEmpleado strIDEmp NOT NULL, strNombre char (15) NOT NULL, strApellidoPaterno char (20) NOT NULL, strPlanPension strID NOT NULL )
Para agregar tipos de datos definidos por el usuario conel Administrador corporativo de SQL Server, siga estos pasos:
1. Abra el Administrador corporativo de SQL Server. 2. Dirjase hasta la base de datos pubs. 3. Vaya a la entrada Tipo de datos definidos por el usuario. 4. Haga clic con el botn derecho del ratn en la carpeta y seleccione Nuevo tipo de datos definido por el usuario. 5. Escriba el nombre, el tipo de datos, la longitud y cualquier regla o valor predeterminado al que est enlazado. 6. Haga clic en Aceptar.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Para quitar tipos de datos definidos por el usuario, puede utilizar el Administrador corporativo de SQL Server o el procedimiento almacenado de sistema sp_droptype. En el Administrador corporativo de SQL Server, siga estos pasos:
1. Expanda su base de datos y seleccione la entrada Tipos de datos definidos por el usuario. 2. En el panel derecho , haga clic con el botn derecho del ratn en el tipo de datos definido por el usuario que desea quitar, y haga clic en Eliminar.
Eso es todo. En Transact-SQL, puede ejecutar el procedimiento almacenado de sistema sp_droptype:
Entrada EXEC sp_droptype strIDEmp
Trabajo con columnas calculadas
Las expresiones que usted guarda pueden crearse de una columna no calculada en la misma tabla, constantes, funciones, variables y hasta nombres. Su columna calculada hace los clculos automticamente al ser llamada en las clusulas SELECT, WHERE u ORDER BY de una consulta. Tambin puede utilizarlas con expresiones regulares. Debe seguir unas cuantas reglas al tratar con las columnas calculadas: Las columnas a las que se hace referencia en la expresin de la columna calculada deben encontrarse en la misma tabla. La expresin de la columna calculada no puede contener una subconsulta. Las columnas calculadas no pueden ser utilizadas como parte de claves o ndices; esta restriccin incluye a las claves primarias y externas, as como a los ndices nicos. No se puede adjuntar una restriccin DEFAULT a una columna calculada. Las columnas calculadas no pueden recibir instrucciones INSERT ni UPDATE. Ahora, consideremos algunos ejemplos que utilizan columnas calculadas:
CREATE TABLE tblPedido ( IngIDPedido int NOT NULL, curPrecio money NOT NULL, intCantidad smallint NOT NULL, curTotal AS curPrecio * intCantidad )
Esta primera tabla tiene una columna calculada llamada curTotal, la cual est compuesta por la multiplicacin de los campos curPrecio * intCantidad. Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital
CREATE TABLE tblImprimirFactura ( lngIDFactura int NOT NULL, detFechaFactura datetime NOT NULL, dtImprimirFecha AS DateAdd (day,30, dtFechaFactura) )
En este ejemplo, una columna calculada llamada ImprimirFecha utiliza la funcin DateAdd para sumar 30 das a la columna dtFechaFactura.
Creacin de tablas
Ahora que ha visto todos los tipos de datos disponibles en SQL Server 2000, es tiempo de ponerlos a trabajar con la instruccin CREATE TABLE. Al igual que con la mayora de las cosas en SQL Server, puede crear tablas de dos maneras: utilizando el Administrador corporativo de SQL Server, o secuencias de comandos de Transact-SQL.
Uso de la instruccin CREATE TABLE
La instruccin CREATE TABLE se utiliza para crear nuevas tablas en SQL Server 2000. Puede crear tablas por medio de cdigo o por medio del Administrador corporativo. Primero veremos el uso de cdigo para generar tablas, y luego tendr la oportunidad de trabajar con el Administrador corporativo. A continuacin se muestra la sintaxis del comando CREATE TABLE:
Nombre_tabla es el nombre de la nueva tabla, el cual debe seguir las reglas para los identificadores. Tambin debe ser nico para su propietario dentro de la base de datos. Esto significa que si dos usuarios tienen permiso para crear tablas dentro de una base de datos, las tablas podran tener el mismo nombre, pero se consideran nicas debido a que el nombre del propietario forma parte del nombre de la tabla. Nombre_columna es el nombre de la columna y debe seguir las reglas para los identificadores. Tipodatos es el tipo de datos de la columna. La ltima parte es opcional. Puede especificar la propiedad Identity, las restricciones de campo y la nulidad. Collate tambin es opcional. Esta propiedad le permite redefinir la secuencia de intercalacin de la base de datos para esta columna.
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital El listado 2.3 muestra una instruccin CREATE TABLE de ejemplo. Esta instruccin crea una tabla de empelados con la capacidad de capturar informacin acerca de los nombres, las direcciones y fechas de inicio de labores de los empleados.
.Cmo crear tablas con el Administrador corporativo de SQL Server
Con el Administrador corporativo de SQL Server puede crear sus tablas en forma visual. Para hacerlo, siga estos pasos: 1. Conctese con su servidor SQL Server, expanda la carpeta Base de datos y luego expanda la base de datos con la que desea trabajar. A continuacin haga clic en la entrada Tablas. Haga clic conel botn derecho del ratn en el panel derecho y seleccione la opcin Nueva tabla. 2. Agregue la informacin correspondiente en Nombre de columna, Tipo de datos, Longitud y Permitir valores nulos. En la mitad inferior de la pantalla puede establecer propiedades de columna tales como la descripcin y la escala de valores predeterminados. Si desea crear un campo de identidad, establezca a S la propiedad Identidad (identity) de la ficha Columnas, y luego elija una inicializacin de identidad y un incremento. Como puede ver se ha agregado varios campos a mi tabla tblEmpleados. 3. Al terminar de agregar los datos necesarios, haga clic en el icono Guardar para guardar su tabla y darle un nombre, y luego cierre el cuadro de dilogo.
Cmo quitar tablas
Puede quitar tablas en el Administrador corporativo de SQL Server haciendo clic con el botn derecho del ratn en la tabla correspondiente y seleccionando la opcin Eliminar del men contextual. Para quitar una tabla utilizando Transact-SQL, ejecute la instruccin DROP TABLE. Por ejemplo, para quitar la tabla tblEmpleados, utilice:
Universidad del Mar
Carrera Tcnica: Tcnico Universitario en Computacin Asignatura: Base de Datos
Udelmar Digital Entrada DROP TABLE tblEmpleados
Para quitar una tabla utilizando el Administrador corporativo de SQL Server, siga estos pasos: 1. Vaya hasta la entrada Tablas y haga clic con el botn derecho del ratn en la tabla que desea quitar. 2. Seleccione la opcin Eliminar del men contextual. Aparecer un cuadro de dilogo. 3. Si desea ver dependencias en esta tabla, haga clic en el botn Mostrar dependencias. Cuando la tabla ya no participa en ninguna relacin de claves primarias/externas, puede hacer clic en el botn Quitar todos para quitar la tabla.