Sei sulla pagina 1di 14

AUTENTIFICACIN DE USUARIOS

CREACION 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.
Seguridad
Permisos

Debe tener el permiso ALTER ANY USER para la base de datos.


Usar SQL Server Management Studio
Para crear un usuario de base de datos

1. En el Explorador de objetos, expanda la carpeta Bases 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 carpeta Seguridad,
seleccione Nuevo y seleccione Usuario.
4. En el cuadro de dilogo Usuario de la base de datos - Nuevo, en la
pgina General, seleccione uno de los tipos de usuario siguientes de la
lista Tipo de usuario: Usuario SQL con inicio de sesin, Usuario SQL sin
inicio de sesin, Usuario asignado a un certificado, Usuario asignado a una
clave asimtrica oUsuario de Windows.
5. En el cuadro Nombre de usuario, escriba un nombre para el nuevo
usuario. Si ha elegido Usuario de Windows en la lista Tipo de usuario,
tambin puede hacer clic en los puntos suspensivos () para abrir el
cuadro de dilogo Seleccionar usuarios o grupos.
6. En el cuadro Nombre 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 dilogo Seleccionar inicio de sesin. Si
selecciona Usuario SQL con inicio de sesin o Usuario de Windows en la
lista Tipo de usuario, estar disponible Nombre de inicio de sesin.
7. En el cuadro Esquema 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
dilogo Seleccionar esquema. Si selecciona Usuario SQL con inicio de
sesin, Usuario SQL sin inicio de sesin, o Usuario de Windows en la
lista Tipo de usuario, estar disponible Esquema predeterminado.
8. En el cuadro de Nombre 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 dilogo Seleccionar
certificado. Si selecciona Usuario asignado a un certificado en la lista Tipo
de usuario, estar disponible Nombre de certificado.
9. En el cuadro Nombre 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 dilogo Seleccionar clave

asimtrica. Si selecciona Usuario asignado a una clave asimtrica en la


lista Tipo de usuario, estar disponible Nombre de clave asimtrica.
10.Haga clic en Aceptar.
Opciones adicionales

El cuadro de dilogo Usuario de la base de datos - Nuevo tambin proporciona


opciones en cuatro pginas adicionales: Esquemas de
propiedad, Pertenencia, Elementos protegibles y Propiedades extendidas.
La pgina Esquemas de propiedad enumera 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, en Esquemas propiedad
de este usuario, active o desactive las casillas situadas junto a los
esquemas.
La pgina Pertenencia enumera 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,
en Pertenencia al rol de la base de datos, active o desactive las casillas
situadas junto a los roles.
La pgina Elementos protegibles muestra todos los elementos protegibles
posibles y los permisos en esos elementos protegibles que se pueden
conceder al inicio de sesin.
La pgina Propiedades extendidas permite agregar propiedades
personalizadas a los usuarios de base de datos. En esta pgina estn
disponibles las opciones siguientes.
Base de datos
Muestra el nombre de la base de datos seleccionada. Este campo es de solo
lectura.
Intercalacin

Muestra la intercalacin utilizada para la base de datos seleccionada. Este


campo es de solo lectura.
Propiedades
Muestra 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 datos

Sintaxis

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_name
Especifica el nombre por el que se identifica al usuario en esta base de
datos. user_name es de tipo sysname. Puede tener una longitud mxima de
128 caracteres.
LOGIN login_name
Especifica el inicio de sesin de SQL Server del usuario de base de datos
que se va a crear. login_name debe 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.

CERTIFICATE cert_name
Especifica el certificado del usuario de la base de datos que se va a crear.
ASYMMETRIC KEY asym_key_name
Especifica la clave asimtrica del usuario de la base de datos que se va a
crear.
WITH DEFAULT_SCHEMA =schema_name
Especifica el primer esquema donde buscar el servidor cuando resuelva
los nombres de objetos de este usuario de base de datos.
WITHOUT LOGIN
Especifica que el usuario no se debe asignar a un inicio de sesin
existente.
Ejemplos
A. Crear un usuario de base de datos

En el siguiente ejemplo, primero se crea un inicio de sesin de servidor


denominado AbolrousHazem con una contrasea y, a continuacin, se crea el
usuario de base de datos AbolrousHazem correspondiente
en AdventureWorks2008R2.
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 predeterminado

En el siguiente ejemplo, primero se crea un inicio de sesin de servidor


denominado WanidaBenshoof con una contrasea y, a continuacin, se crea el
usuario de base de datos Wanida correspondiente con el esquema
predeterminado Marketing.
CREATE LOGIN WanidaBenshoof
WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks2008R2;

CREATE USER Wanida FOR LOGIN WanidaBenshoof


WITH DEFAULT_SCHEMA = Marketing;
GO

C. Crear un usuario de base de datos a partir de un certificado

En el siguiente ejemplo, se crea el usuario de base de datos JinghaoLiu desde el


certificado CarnationProduction50.
USE AdventureWorks2008R2;
CREATE CERTIFICATE CarnationProduction50
WITH SUBJECT = 'Carnation Production Facility Supervisors',
EXPIRY_DATE = '11/11/2011';
GO
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;
GO

D. Crear y utilizar un usuario sin inicio de sesin

En el ejemplo siguiente se crea un usuario de base de datos CustomApp que no


se asigna a un inicio de sesin de SQL Server. A continuacin, se concede a un
usuario el permiso adventure-works\tengiz0 para suplantar al usuario
de CustomApp.
USE AdventureWorks2008R2 ;
CREATE USER CustomApp WITHOUT LOGIN ;
GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;
GO

Para usar las credenciales de CustomApp, el usuario adventureworks\tengiz0 ejecuta la siguiente instruccin.
EXECUTE AS USER = 'CustomApp' ;
GO

Para revertir a las credenciales de adventure-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 Syntax

CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }


<option_list1> ::=
PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
[ , <option_list2> [ ,... ] ]
<option_list2> ::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
| CREDENTIAL = credential_name
<sources> ::=
WINDOWS [ WITH <windows_options>[ ,... ] ]
| CERTIFICATE certname
| ASYMMETRIC KEY asym_key_name
<windows_options> ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
-- Syntax for Windows Azure SQL Database
CREATE LOGIN login_name
{ WITH <option_list3> }
<option_list3> ::=
PASSWORD = { 'password' }
[ SID = sid ]

Argumentos

login_name
Especifica 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 [<nombreDeDominio>\<nombreDeInicioDeSesin>]. No
puede utilizar un UPN con el formato
nombreDeInicioDeSesin@nombreDeDominio. Vea el ejemplo D ms
adelante en este tema. Los inicios de sesin con autenticacin de SQL
Server son del tipo sysname, deben seguir las reglas de Identificadores y
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 ni login_name.
PASSWORD =hashed_password
Se 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.
HASHED
Se 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_CHANGE
Se 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_name

Se 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 = sid
Se 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 =database
Se 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 =language
Se 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 &.
WINDOWS
Se aplica a: SQL Server 2008 hasta SQL Server 2014.

Especifica que el inicio de sesin se asigna a un inicio de sesin de


Windows.
CERTIFICATE certname
Se 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 KEY asym_key_name
Se 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_time se 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, vea Directiva 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 de CONNECT SQL de nivel servidor.
Permisos

En SQL Server, requiere el permiso ALTER ANY LOGIN en el servidor o la


pertenencia al rol fijo de servidor securityadmin.

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 de loginmanager en la base de datos
maestra.
Si se utiliza la opcin CREDENTIAL, tambin ser necesario el permiso ALTER
ANY CREDENTIAL en 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 rol public. 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 con CREATE SERVER


ROLE (Transact-SQL). Utilice ALTER SERVER ROLE ADD
MEMBER para agregar el nuevo inicio de sesin al rol de servidor
definido por el usuario.

Utilice sp_addsrvrolemember para agregar el inicio de sesin a un rol fijo


de servidor. Para obtener ms informacin,.

Use la instruccin de GRANT, 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 contrasea

El ejemplo siguiente crea un inicio de sesin para un usuario determinado y le


asigna una contrasea.
CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';

GO

B.Crear un inicio de sesin con una contrasea

El ejemplo siguiente crea un inicio de sesin para un usuario determinado y le


asigna una contrasea. La opcin MUST_CHANGE exige 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 <login_name> WITH PASSWORD = '<enterStrongPasswordHere>'
MUST_CHANGE;
GO

C.Crear un inicio de sesin asignado a una credencial

El 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 <login_name> WITH PASSWORD = '<enterStrongPasswordHere>',
CREDENTIAL = <credentialName>;
GO

D.Crear un inicio de sesin desde un certificado

En 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 <certificateName>
WITH SUBJECT = '<login_name> certificate in master database',
EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <login_name> FROM CERTIFICATE <certificateName>;
GO

E.Crear un inicio de sesin desde una cuenta de dominio de Windows

El 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 [<domainName>\<login_name>] FROM WINDOWS;
GO

Potrebbero piacerti anche