autentificación de usuarios

18
AUTENTIFICACIÓN DE USUARIOS CREACION DE USUARIOS: Un usuario es una entidad de seguridad de la base de datos. Los inicios de sesión deben estar asignados a un usuario de base de datos para poder conectarse a una base de datos. Un inicio de sesión se puede asignar a bases de datos diferentes como usuario diferente pero solo se puede asignar como un usuario en cada base de datos. En una base de datos parcialmente independiente, puede crearse un usuario que no tenga un inicio de sesión. Para obtener más información acerca de los usuarios de bases de datos independientes. Si el usuario invitado de una base de datos está habilitado, un inicio de sesión que no esté asignado a un usuario de la base de datos puede entrar en la base de datos como el usuario invitado. Nota de seguridad El usuario invitado suele estar deshabilitado. No habilite al usuario invitado a menos que sea necesario. Como entidad de seguridad, se pueden conceder permisos a los usuarios. El ámbito de un usuario es la base de datos. Para conectar con una base de datos concreta en la instancia de SQL Server, un inicio de sesión debe estar asignado a un usuario de la base de datos. Los permisos dentro de la base de datos se conceden y deniegan al usuario de la base de datos, no al inicio de sesión. Seguridad Permisos

Upload: judith-reluz

Post on 18-Dec-2015

215 views

Category:

Documents


0 download

DESCRIPTION

BASE DE DATOS

TRANSCRIPT

AUTENTIFICACIN DE USUARIOSCREACION DE USUARIOS:Un usuario es una entidad de seguridad de la base de datos.Los inicios de sesin deben estar asignados a un usuario de base de datos para poder conectarse a una base de datos.Un inicio de sesin se puede asignar a bases de datos diferentes como usuario diferente pero solo se puede asignar como un usuario en cada base de datos.En una base de datos parcialmente independiente, puede crearse un usuario que no tenga un inicio de sesin.Para obtener ms informacin acerca de los usuarios de bases de datos independientes.Si el usuario invitado de una base de datos est habilitado, un inicio de sesin que no est asignado a un usuario de la base de datos puede entrar en la base de datos como el usuario invitado.Nota de seguridad

El usuario invitado suele estar deshabilitado.No habilite al usuario invitado a menos que sea necesario.

Como entidad de seguridad, se pueden conceder permisos a los usuarios.El mbito de un usuario es la base de datos.Para conectar con una base de datos concreta en la instancia de SQL Server, un inicio de sesin debe estar asignado a un usuario de la base de datos.Los permisos dentro de la base de datos se conceden y deniegan al usuario de la base de datos, no al inicio de sesin.SeguridadPermisosDebe tener el permisoALTER ANY USERpara la base de datos.Usar SQL Server Management Studio

Para crear un usuario de base de datos1. En el Explorador de objetos, expanda la carpetaBases de datos.2. Expanda la base de datos en la que se va a crear el usuario de la misma.3. Haga clic con el botn secundario en la carpetaSeguridad, seleccioneNuevoy seleccioneUsuario.4. En el cuadro de dilogoUsuario de la base de datos - Nuevo, en la pginaGeneral, seleccione uno de los tipos de usuario siguientes de la listaTipo de usuario:Usuario SQL con inicio de sesin,Usuario SQL sin inicio de sesin,Usuario asignado a un certificado,Usuario asignado a una clave asimtricaoUsuario de Windows.5. En el cuadroNombre de usuario, escriba un nombre para el nuevo usuario.Si ha elegidoUsuario de Windowsen la listaTipo de usuario, tambin puede hacer clic en los puntos suspensivos()para abrir el cuadro de dilogoSeleccionar usuarios o grupos.6. En el cuadroNombre de inicio de sesin, escriba el inicio de sesin para el usuario.Como alternativa, haga clic en los puntos suspensivos()para abrir el cuadro de dilogoSeleccionar inicio de sesin.Si seleccionaUsuario SQL con inicio de sesinoUsuario de Windowsen la listaTipo de usuario, estar disponibleNombre de inicio de sesin.7. En el cuadroEsquema predeterminado, especifique el esquema al que pertenecern los objetos creados por este usuario.Como alternativa, haga clic en los puntos suspensivos()para abrir el cuadro de dilogoSeleccionar esquema.Si seleccionaUsuario SQL con inicio de sesin,Usuario SQL sin inicio de sesin, oUsuario de Windowsen la listaTipo de usuario, estar disponibleEsquema predeterminado.8. En el cuadro deNombre de certificado, escriba el certificado que se utilizar para el usuario de base de datos.Como alternativa, haga clic en los puntos suspensivos()para abrir el cuadro de dilogoSeleccionar certificado.Si seleccionaUsuario asignado a un certificadoen la listaTipo de usuario, estar disponibleNombre de certificado.9. En el cuadroNombre de clave asimtrica, escriba la clave que se va a utilizar para el usuario de base de datos.Como alternativa, haga clic en los puntos suspensivos()para abrir el cuadro de dilogoSeleccionar clave asimtrica.Si seleccionaUsuario asignado a una clave asimtricaen la listaTipo de usuario, estar disponibleNombre de clave asimtrica.10. Haga clic en Aceptar.Opciones adicionalesEl cuadro de dilogoUsuario de la base de datos - Nuevotambin proporciona opciones en cuatro pginas adicionales:Esquemas de propiedad,Pertenencia,Elementos protegiblesyPropiedades extendidas. La pginaEsquemas de propiedadenumera todos los esquemas posibles que pueden ser propiedad del nuevo usuario de base de datos.Para agregar o quitar esquemas en un usuario de base de datos, enEsquemas propiedad de este usuario, active o desactive las casillas situadas junto a los esquemas. La pginaPertenenciaenumera todos los roles de pertenencia de base de datos posibles que pueden ser propiedad del nuevo usuario de base de datos.Para agregar o quitar roles en un usuario de base de datos, enPertenencia al rol de la base de datos, active o desactive las casillas situadas junto a los roles. La pginaElementos protegiblesmuestra todos los elementos protegibles posibles y los permisos en esos elementos protegibles que se pueden conceder al inicio de sesin. La pginaPropiedades extendidaspermite agregar propiedades personalizadas a los usuarios de base de datos.En esta pgina estn disponibles las opciones siguientes.Base de datosMuestra el nombre de la base de datos seleccionada.Este campo es de solo lectura.IntercalacinMuestra la intercalacin utilizada para la base de datos seleccionada.Este campo es de solo lectura.PropiedadesMuestra o especifica las propiedades extendidas del objeto.Cada propiedad extendida est formada por un par nombre/valor de metadatos asociados al objeto.Usar Transact-SQL

Para crear un usuario de base de datosSintaxis

CREATE USER user_name [ { { FOR | FROM } { LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY asym_key_name } | WITHOUT LOGIN ] [ WITH DEFAULT_SCHEMA = schema_name ]Argumentos

user_nameEspecifica el nombre por el que se identifica al usuario en esta base de datos.user_namees de tiposysname. Puede tener una longitud mxima de 128 caracteres.LOGINlogin_nameEspecifica el inicio de sesin de SQL Server del usuario de base de datos que se va a crear.login_namedebe ser un inicio de sesin vlido en el servidor. Cuando este inicio de sesin de SQL Server se introduzca en la base de datos adquirir el nombre y el identificador del usuario de la base de datos que se va a crear.CERTIFICATEcert_nameEspecifica el certificado del usuario de la base de datos que se va a crear.ASYMMETRIC KEYasym_key_nameEspecifica la clave asimtrica del usuario de la base de datos que se va a crear.WITH DEFAULT_SCHEMA=schema_nameEspecifica el primer esquema donde buscar el servidor cuando resuelva los nombres de objetos de este usuario de base de datos.WITHOUT LOGINEspecifica que el usuario no se debe asignar a un inicio de sesin existente.Ejemplos

A. Crear un usuario de base de datosEn el siguiente ejemplo, primero se crea un inicio de sesin de servidor denominadoAbolrousHazemcon una contrasea y, a continuacin, se crea el usuario de base de datosAbolrousHazemcorrespondiente enAdventureWorks2008R2.CREATE LOGIN AbolrousHazem WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';USE AdventureWorks2008R2;CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;GO B. Crear un usuario de base de datos con un esquema predeterminadoEn el siguiente ejemplo, primero se crea un inicio de sesin de servidor denominadoWanidaBenshoofcon una contrasea y, a continuacin, se crea el usuario de base de datosWanidacorrespondiente con el esquema predeterminadoMarketing.CREATE LOGIN WanidaBenshoof WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';USE AdventureWorks2008R2;CREATE USER Wanida FOR LOGIN WanidaBenshoof WITH DEFAULT_SCHEMA = Marketing;GOC. Crear un usuario de base de datos a partir de un certificadoEn el siguiente ejemplo, se crea el usuario de base de datosJinghaoLiudesde el certificadoCarnationProduction50.USE AdventureWorks2008R2;CREATE CERTIFICATE CarnationProduction50 WITH SUBJECT = 'Carnation Production Facility Supervisors', EXPIRY_DATE = '11/11/2011';GOCREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;GO D. Crear y utilizar un usuario sin inicio de sesinEn el ejemplo siguiente se crea un usuario de base de datosCustomAppque no se asigna a un inicio de sesin de SQL Server. A continuacin, se concede a un usuario el permisoadventure-works\tengiz0para suplantar al usuario deCustomApp.USE AdventureWorks2008R2 ;CREATE USER CustomApp WITHOUT LOGIN ;GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;GO Para usar las credenciales deCustomApp, el usuarioadventure-works\tengiz0ejecuta la siguiente instruccin.EXECUTE AS USER = 'CustomApp' ;GOPara revertir a las credenciales deadventure-works\tengiz0, el usuario ejecuta la siguiente instruccin.REVERT ;GO

CREACION DE LOGIN :Crea un inicio de sesin del Motor de base de datos para SQL Server y Windows Azure SQL Database.Sintaxis

-- SQL Server SyntaxCREATE LOGIN login_name { WITH | FROM }

::= PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ] [ , [ ,... ] ]

::= SID = sid | DEFAULT_DATABASE =database | DEFAULT_LANGUAGE =language | CHECK_EXPIRATION = { ON | OFF} | CHECK_POLICY = { ON | OFF} | CREDENTIAL =credential_name

::= WINDOWS [ WITH [ ,... ] ] | CERTIFICATE certname | ASYMMETRIC KEY asym_key_name

::= DEFAULT_DATABASE =database | DEFAULT_LANGUAGE =language-- Syntax for Windows Azure SQL Database

CREATE LOGIN login_name { WITH }

::= PASSWORD = { 'password' } [ SID = sid ]Argumentos

login_nameEspecifica el nombre del inicio de sesin que se va a crear.Hay cuatro tipos de inicio de sesin: de SQL Server, de Windows, asignado a un certificado y asignado a una clave asimtrica.Cuando crea inicios de sesin que se asignan desde una cuenta de dominio de Windows, debe utilizar el nombre de inicio de sesin de usuario anterior a Windows 2000 con el formato [\].No puede utilizar un UPN con el formato [email protected] el ejemplo D ms adelante en este tema.Los inicios de sesin con autenticacin de SQL Server son del tiposysname, deben seguir las reglas deIdentificadoresy no pueden contener \.Los inicios de sesin de Windows pueden contener un carcter '\'.PASSWORD='password'Solo se aplica a inicios de sesin de SQL Server.Especifica la contrasea del inicio de sesin que se est creando.Debe utilizar siempre una contrasea segura. En las contraseas se distingue entre maysculas y minsculas.Las contraseas siempre deben ser de al menos 8 caracteres y no pueden superar los 128 caracteres.Las contraseas pueden incluir a-z, A-Z, 0-9 y la mayora de los caracteres no alfanumricos.Las contraseas no pueden contener comillas simples nilogin_name.PASSWORD=hashed_passwordSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Solo se aplica a la palabra clave HASHED.Especifica el valor con hash de la contrasea para el inicio de sesin que se est creando.HASHEDSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Solo se aplica a inicios de sesin de SQL Server.Especifica que a la contrasea introducida tras PASSWORD ya ha se le ha aplicado el algoritmo hash. Si esta opcin no est seleccionada, el algoritmo hash se aplica a la cadena especificada como contrasea antes de almacenarse en la base de datos.Esta opcin solo se debera utilizar para migrar las bases de datos de un servidor a otro.No utilice la opcin HASHED para crear nuevos inicios de sesin.La opcin HASHED no se puede utilizar con los valores hash creados con SQL Server 7 o anterior.MUST_CHANGESe aplica a: SQL Server 2008 hasta SQL Server 2014.

Solo se aplica a inicios de sesin de SQL Server.Si se incluye esta opcin, SQL Server pide al usuario la contrasea nueva la primera vez que se utilice el inicio de sesin nuevo.CREDENTIAL=credential_nameSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Nombre de una credencial que debe asignarse al nuevo inicio de sesin de SQL Server.La credencial ya debe existir en el servidor. Actualmente esta opcin solo vincula la credencial a un inicio de sesin.Los credenciales no se pueden asignar al inicio de sesin sa.SID =sidSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Solo se aplica a inicios de sesin de SQL Server.Especifica el GUID del inicio de sesin de SQL Server nuevo.Si esta opcin no se selecciona, SQL Server asigna automticamente un GUID.DEFAULT_DATABASE=databaseSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Especifica la base de datos predeterminada que debe asignarse al inicio de sesin.Si no se incluye esta opcin, el valor predeterminado se establece en master.DEFAULT_LANGUAGE=languageSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Especifica el idioma predeterminado que debe asignarse al inicio de sesin.Si no se incluye esta opcin, el idioma predeterminado es el del servidor.Si el idioma predeterminado del servidor se cambia ms tarde, el del inicio de sesin se mantiene igual.CHECK_EXPIRATION={ ON | OFF }Se aplica a: SQL Server 2008 hasta SQL Server 2014.

Solo se aplica a inicios de sesin de SQL Server.Especifica si debe aplicarse la directiva de caducidad de contraseas en este inicio de sesin.El valor predeterminado es OFF.CHECK_POLICY={ ON | OFF }Se aplica a: SQL Server 2008 hasta SQL Server 2014.

Solo se aplica a inicios de sesin de SQL Server.Especifica que se deben aplicar las directivas de contraseas de Windows en el equipo que ejecuta SQL Server para este inicio de sesin.El valor predeterminado es ON.Si la directiva de Windows requiere contraseas seguras, las contraseas deben tener al menos tres de las cuatro siguientes caractersticas: Un carcter en mayscula (A-Z). Un carcter en minsculas (a-z). Un dgito (0-9). En uno de los caracteres no alfanumricos, como un espacio, __, @, *, ^, %! , $, #, o &.WINDOWSSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Especifica que el inicio de sesin se asigna a un inicio de sesin de Windows.CERTIFICATEcertnameSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Especifica el nombre de un certificado al que asociar este inicio de sesin.Este certificado debe existir en la base de datos master.ASYMMETRIC KEYasym_key_nameSe aplica a: SQL Server 2008 hasta SQL Server 2014.

Especifica el nombre de una clave asimtrica a la que asociar este inicio de sesin.Esta clave debe existir en la base de datos master.Comentarios

En las contraseas se distingue entre maysculas y minsculas.La aplicacin previa del algoritmo hash a las contraseas solo se admite en la creacin de inicios de SQL Server.Si se especifica MUST_CHANGE, CHECK_EXPIRATION y CHECK_POLICY, deben establecerse en ON.Si no es as, la instruccin producir un error.No se admite la combinacin de CHECK_POLICY = OFF y CHECK_EXPIRATION = ON.Cuando CHECK_POLICY se establece en OFF,lockout_timese restablece y CHECK_EXPIRATION se establece en OFF.Importante

CHECK_EXPIRATION y CHECK_POLICY solo se aplican en Windows Server 2003 y versiones posteriores.Para obtener ms informacin, veaDirectiva de contraseas.

Los inicios de sesin creados con certificados o claves asimtricas solo se usan para la firma del cdigo.No se pueden utilizar para conectarse a SQL Server.Solo puede crear un inicio de sesin desde un certificado o clave asimtrica cuando este certificado o clave asimtrica ya exista en la base de datos master.Al crear un inicio de sesin automticamente se habilita el nuevo inicio de sesin y se concede al mismo el permiso deCONNECT SQLde nivel servidor.Permisos

En SQL Server, requiere el permisoALTER ANY LOGINen el servidor o la pertenencia al rol fijo de servidorsecurityadmin.En Base de datos SQL, solo pueden crear nuevos inicios de sesin el inicio de sesin principal de nivel servidor (creado por el proceso de aprovisionamiento) o los miembros del rol de base de datos deloginmanageren la base de datos maestra.Si se utiliza la opcinCREDENTIAL, tambin ser necesario el permisoALTER ANY CREDENTIALen el servidor.Pasos siguientes

Despus de crear un inicio de sesin, el inicio de sesin puede conectarse a Motor de base de datos o a Base de datos SQL, pero solo tiene los permisos concedidos al rolpublic.Considere realizar algunas de las actividades siguientes. Para conectarse a una base de datos, cree un usuario de base de datos para el inicio de sesin. Cree un rol de servidor definido por el usuario conCREATE SERVER ROLE (Transact-SQL).UtiliceALTER SERVER ROLEADD MEMBERpara agregar el nuevo inicio de sesin al rol de servidor definido por el usuario. Utilicesp_addsrvrolememberpara agregar el inicio de sesin a un rol fijo de servidor.Para obtener ms informacin,. Use la instruccin deGRANT, para conceder permisos de servidor al nuevo inicio de sesin o un rol que contiene el inicio de sesin.Para obtener ms informacin, Ejemplos

A.Crear un inicio de sesin con una contraseaEl ejemplo siguiente crea un inicio de sesin para un usuario determinado y le asigna una contrasea.CREATE LOGIN WITH PASSWORD = '';GOB.Crear un inicio de sesin con una contraseaEl ejemplo siguiente crea un inicio de sesin para un usuario determinado y le asigna una contrasea.La opcinMUST_CHANGEexige a los usuarios que cambien la contrasea la primera vez que se conecten al servidor.Se aplica a: SQL Server 2008 hasta SQL Server 2014.

CREATE LOGIN WITH PASSWORD = '' MUST_CHANGE;GOC.Crear un inicio de sesin asignado a una credencialEl ejemplo siguiente crea el inicio de sesin para un usuario determinado, utilizando el de usuario.Este inicio de sesin se asigna a la credencial.Se aplica a: SQL Server 2008 hasta SQL Server 2014.

CREATE LOGIN WITH PASSWORD = '', CREDENTIAL = ;GOD.Crear un inicio de sesin desde un certificadoEn el ejemplo siguiente se crea el inicio de sesin de un usuario determinado a partir de un certificado de master.Se aplica a: SQL Server 2008 hasta SQL Server 2014.

USE MASTER;CREATE CERTIFICATE WITH SUBJECT = ' certificate in master database', EXPIRY_DATE = '12/05/2025';GOCREATE LOGIN FROM CERTIFICATE ;GOE.Crear un inicio de sesin desde una cuenta de dominio de WindowsEl ejemplo siguiente crea un inicio de sesin a partir de una cuenta de dominio de Windows.Se aplica a: SQL Server 2008 hasta SQL Server 2014.

CREATE LOGIN [\] FROM WINDOWS;GO