Usuarios y Roles

Un tema importante ademas de la normalizacion y la integridad de los datos es la seguridad de la base de datos, la cual se puede manejar por medio de la creacion de usuarios y roles lo cual mostrare como se realiza dentro de la base de datos, se aplicara lo visto en los articulos anteriores, desde la creacion de la base, hasta su relacion, antes definiremos algunos conceptos:

Privilegios

Es la capacidad de un usuario dentro de la base de datos a realizar determinadas operaciones o
acceder a determinados objetos de otros usuarios.

Privilegios sobre los objetos

Nos permite acceder y realizar cambios en los datos de otro usuario. Ejemplo: El privilegio de consultar la tabla de otro usuario es un privilegio sobre objetos.

ON= Especifica el objeto sobre el que se dan los privilegios.
TO= Identifica a los usuarios o roles a los que se conceden privilegios.
ALL= Concede todos los privilegios sobre el objeto especificado.
WITCH GRANT OPTION= Permite que el receptor del privilegio o rol se lo asigne a otros usuarios o roles.
Public= Asigna los privilegios a todos los usuarios actuales y futuros: el proposito principal del grupo PUBLIC es garantizar el acceso a determinados objetos a todos los usuarios de la base de datos.

Privilegios del sistema

Dan derecho de ejecutar un tipo de comando SQL o a realizar alguna opcion sobre objetos de un tipo especificado. por ejemplo, el privilegio para crear TABLESPACES es un privilegio del sistema formato:

WITH ADMIN OPTION= Permite que el receptor del privilegio o rol pueda conceder esos mismos privilegios a otros usuarios o roles.

De este modo se comprende que por medio de los privilegios se puede establecer una linea de seguridad, se preguntaran quien es el que otorga los privilegios a los demas usuarios, es el DBA (Database Administrator o Administrador de base de datos).

Roles

Conjunto de privilegios agrupados, su sintaxis es:

Create Role NombreRol;

Un rol puede decidir el acceso de un usuario a un objeto, pero no puede permitir la creacion de objetos, es decir no se puede hacer un create o un insert, solo se permite el acceso a la informacion de ese objeto es decir un Select que es la palabra reservada que se utiliza para visualizar la informacion de un objeto.

De igual forma como se pueden conceder privilegios en los roles, se pueden suprimir de los mismos de la siguiente forma:

Revoke NombrePrivilegio on NombreTabla From NombreRol;
Revoke NombrePrivilegio From NombreRol

Asi mismo podemos suprimir roles de la siguiente forma:

Drop Role NombreRol;

Se puede establecer un rol por defecto con la siguiente sintaxis:

Alter User NombreUsuario
Default {[Role Nombre_Rol] | [None]};

NONE= Hace que el usuario no tenga rol por defecto

Permisos basados en roles

Otorgar permisos a roles en lugar de a usuarios simplifica la administracion de la seguridad. Los conjuntos de permisos asignados a roles heredan todos los miembros del rol. Se es mas facil agregar o suprimir usuarios de un rol que volver a crear conjuntos de permisos distintos para cada usuario.

Existen tres instrucciones de permiso de Transact-SQL son las siguientes:

-Grant: Concede un permiso.
-Revoke: Revoca un permiso.
-Deny: Revoca un permiso de manera que no pueda ser heredado.

Usuarios(Users)

Teniendo en cuenta que ya se creo la base de datos, se crean usuarios para poder acceder a ella, estos usuarios posee diferentes roles o privilegios.

Para que un usuario pueda ingresar a la base de datos, se debe crear un login, ya que cuando nos conectamos al motor nos permite hacerlo por medio de la autenticacion de window o de SQL server, los login de lo usuarios, seran solicitados en la autenticacion por medio de SQL server.

¿Que es un Login?

En el motor de base de datos un login funciona de la misma manera que cualquier otro en otro lugar, es la solicitud del nombre del login y el ingreso de la contraseña, este login se añade al usuario que se crea basado el mismo nombre, su sintaxis es la siguiente:

create login nombrelogin
with password= 'password';.

Luego de haber creado el login en la base de datos "Facturacion", verificamos en el explorador de objetos nos posicionamos sobre la base de datos que tiene el nombre de "Facturacion"  y actualizamos ahi desplazamos la pestaña que dice seguridad y aparecera nuestro login.

Luego de haberlo verificado y ver que si esta creado, procedemos a crear el usuario al cual concatenaremos el login recien creado la sintaxis es la siguiente:

use Facturacion
create user nombreusuario for login nombrelogin
with default_schema = dbo;

Luego de haber creado el usuario, procederemos a verificarlo, iniciando sesion nuevamente en el Managament Studio esta vez pediremos auteticacion por SQL server y en los datos del usuario ubicaremos el nombre del recien creado y la contraseña.

Asignacion de privilegios

Para asignar los privilegios debemos comprender que:

-Select: Es una palabra reservada que me permite visualizar los datos de un objeto(SELECT * FROM NombreObjeto) esto me muestra todos los registro que posea dicho objeto.

-Insert: Nos permite ingresar datos a una tabla(Insert into tblnombre(campo1,campo2....campoN values()) donde values son los datos a ingresar.

-Drop: Nos permite borrar por completo un objeto es decir su estructura.

-Alter: Como ya lo conocimos antes, este nos permite hacer una modificacion a la estructura.

Al conocer esto procederemos a asignarle privilegios de select a un usuario con la siguiente sintaxis:

Grant select on object :: nombreObjeto to nombreUsuario;

Esta sentencia se ejecutara utilizando la base que se llama "Master".

Les dejare el script de la base de datos Facturacion con la creacion de Login y Usuario, asi mismo con la asignacion de los privilegios en el siguiente articulo.









No hay comentarios:

Publicar un comentario