sábado, 14 de enero de 2017

Autorizar logins para acceder a bases de datos

Creación de un inicio de sesión (Login)

Para acceder al motor de base de datos, los usuarios necesitan un inicio de sesión (Login). El inicio de sesión puede representar la identidad del usuario como una cuenta de Windows o como miembro de un grupo de Windows o el inicio de sesión puede ser un inicio de sesión de SQL Server que sólo existe en SQL Server. Siempre que sea posible, se utilizará la autenticación de Windows.

De forma predeterminada, los administradores del equipo tienen acceso completo a SQL Server. Para este ejemplo, queremos tener un usuario con menos privilegios; Por lo tanto, se creará una nueva cuenta local de autenticación de Windows en el equipo. Para ello, es necesario administrador del equipo. A continuación, concede a ese nuevo usuario el acceso a SQL Server.

Para crear una nueva cuenta de Windows:
Hacer click en Inicio, hacer click en Ejecutar, en el cuadro Abrir, escribir
% SystemRoot% \ system32 \ compmgmt.msc / s

Autorizar logins para acceder a bases de datos



y Aceptar para abrir el programa Administración de equipos.

Administración de equipos

En Herramientas del sistema, expandir Usuarios y grupos locales, hacer click con el botón derecho del ratón en Usuarios ya continuación, haga click en Nuevo usuario.

Nuevo usuario Windows

 En el cuadro Nombre de usuario escribir Pepe.



En el cuadro Contraseña y Confirmar contraseña, escribir una contraseña segura y, a continuación, hacer click en Crear para crear un nuevo usuario local de Windows.

Para crear un inicio de sesión


En una ventana del Editor de consultas de SQL (Server Management Studio), escribir y ejecutar el siguiente código sustituyendo el nombre del equipo por el nombre de su equipo. La cláusula FROM WINDOWS indica que Windows autenticará al usuario. El argumento opcional DEFAULT_DATABASE conecta a Pepe a la base de datos indicada en  su cadena de conexión. Esta instrucción termina en punto y coma.

CREATE LOGIN [Nombre_de_la_maquina\Pepe] FROM WINDOWS WITH  DEFAULT_DATABASE = [Nombre_Base_Datos];
GO

Esto autoriza a un nombre de usuario, en este caso Pepe, autenticado por su equipo, para tener acceso a esta instancia de SQL Server. Si hay más de una instancia de SQL Server en el equipo, es necesario crear el inicio de sesión en cada instancia en la que Pepe debe tener acceso.

Nota: Debido a que Pepe no posee una cuenta de dominio, este nombre de usuario sólo se puede autenticarse en su equipo.

Conceder acceso a una base de datos


Pepe ahora tiene acceso a esta instancia de SQL Server, pero no tiene permiso para acceder a las bases de datos. Ni siquiera tiene acceso a su base de datos predeterminada, hasta que se le autorice como usuario de su base de datos.
Para conceder acceso a Pepe, es necesario cambiar a la base de datos en la  que Pepe tiene permisos y, a continuación, utilizar la instrucción CREATE USER para asignar el inicio de sesión al usuario Pepe.
Para crear un usuario en una base de datos:

USE [Nombre_BaseDatos];  
GO  

CREATE USER [Pepe] FOR LOGIN [Nombre_Login];  
GO  

Ejemplo:

USE dbPrueba; 
GO 
CREATE USER Pepe FOR LOGIN Usuario_BBDD; 
GO 
 
Ahora Pepe puede acceder a la base de datos correspondiente logándose por ambos caminos, con Windows y con SQL server.

Conceder acceso a un objeto de base de datos


El administrador, puede ejecutar sentencias SELECT; Sin embargo, Pepe no puede. Para conceder a Pepe los permisos correspondientes, para ello utilizaremos la instrucción GRANT.
En el siguiente ejemplo se le conceden permisos para ejecutar un procedimiento almacenado llamado Nombre_Procedimiento.

GRANT EXECUTE ON Nombre_Procedimiento TO Pepe;
GO

En este escenario, Pepe sólo puede tener acceso al procedimiento almacenado. Si se desea que Pepe pueda ejecutar una instrucción SELECT a una vista, entonces la instrucción sería: GRANT SELECT ON Nombre_Vista TO Pepe. Para quitar el acceso a objetos de base de datos, se debe utilizar la instrucción REVOKE.

Acerca de GRANT


Para ejecutar un procedimiento almacenado el usuario debe tener permiso EXECUTE. Debe tener permisos SELECT, INSERT, UPDATE y DELETE para acceder y cambiar los datos. La sentencia GRANT también se utiliza para otros permisos, como el permiso para crear tablas.
Los inicios de sesión proporcionan a los usuarios permisos para conectarse a SQL Server. Los usuarios son los inicios de sesión que pueden acceder a una base de datos específica. Es necesario utilizar la instrucción GRANT para dar a los usuarios permiso para leer, acceder y cambiar los datos.

No hay comentarios:

Publicar un comentario