Creación de esquemas en SQL

Los esquemas son un conjunto de objetos que se crean en la base de datos de SQL y en este post vamos a ver como trabajar con la creación de esquemas en SQL. El esquema contiene tablas, funciones, vistas, etc. Es una división lógica creada para separar objetos por medio de una categoría.

Pudiéramos separar por categorías una base datos. Por ejemplo, si tuviéramos que administrar una base de datos de una empresa, pudiéramos separar los departamentos por esquemas. El ejemplo anterior podría esta ejemplificado de la siguiente manera:

  • Recursos Humanos: Esquema1
  • Operación: Esquema2
  • Ventas: Esquema3

Lo anterior sería una forma se categorizar los esquemas en una base de datos. Las tablas creadas en una base de datos cuando el esquema no es creado, se asignan a dbo de la base de datos. Al trabajar con esquemas se tiene que tener en cuenta logins y de usuarios. Lo anterior porque los usuarios se asignan a esquemas, además de las tablas.

SQL tiene doble comprobación de autenticidad. Para loguearme al servidor necesito un login y para acceder a la base de datos necesitaré un user o usuario. Cada usuario tiene sus privilegios o permisos.

 

Creando un login y user para SQL

Como les comenté necesitamos ver de qué va el tema de los logins, ya que los esquemas están relacionados. Hay algunas formas de tener un login existen lo de Windows autentication, los de SQL y los de directorio activo, con cualquiera puedes trabajar. El tema con los loging de Windows autentication es que el mismo sistema operativo valida el acceso. En algunas empresas se configura los logins por medio del directorio activo o lo logins por medio de cuentas SQL.

Login a SQL por medio de la autenticación de windows

Aquí se muestra el ingreso de credenciales de acceso por medio de una cuenta SQL, generada en nuestra base de datos.

Acceso por medio de una cuenta SQL

Para el siguiente ejemplo voy a acceder desde Windows Autentication y voy a empezar a crear un login SQL. En el árbol estructural de carpetas de SQL, en el apartado de Security >> Logins vamos a dar un clic en New Login…

 

Creando un login y user para SQL

Para ejemplificar el ejercicio voy a crear un usuario llamado User_Demo y le voy a desactivar las siguientes opciones:

  • Enforce password policy: Se adiere a las politicas de seguridad de creación de passwords.
  • Enforce password expiration: forzar al usuario que el password caduque y por ende se tenga que cambiar cada cierto tiempo.
  • User must change password at next login: forzar a que el usuario tenga que cambiar el password en el próximo inicio de sesión.

Las opciones anteriores las desactivo y solo basta con poner alguna contraseña y dar clic en Ok, con eso estará creado el login de SQL.

Creación de esquemas en SQL

A continuación, se aprecia el login User_Demo creado. Cabe aclarar que el login solo me permite entrar al servidor, para acceder a una base de datos se deberá contar con un usuario.

Logins dentro de SQL

Creando el user dentro de login

Ahora bien, para crear el user y asignarla a una base de datos. En las propiedades de login creado debemos de buscar la pestaña de User Mapping. No se los mencione antes, pero se puede crear en la misma ventana el login y el user todo junto. Bueno volviendo al tema, en este apartado podemos indicar a que base de datos podemos hacer login. En este ejercicio seleccione una base de datos de prueba.

También se le asigna los roles o permisos al usuario dentro de la base de datos. Automáticamente se asigna el rol public (publico). Le personalizo los permisos de lectura (db_datareader) y los permisos de escritura (db_writer). Con todo esto le doy ok.

Creando el user dentro de login

Con todo esto si me voy a la base de datos seleccionada, puedo ver que el usuario esta creado dentro de la base de datos seleccionada. Data Base >> Security  >> Users en esa ruta se encuentra el usuario creado, en mi caso el usuario User_Demo.

SQL Schemas

Crear login y user con código transaccional en SQL

Ahora bien, todas estas tareas que realizadas por la interfaz gráfica se pueden hacer por medio de código transaccional. Supongamos que queremos hacer lo mismo con usuario llamado Juanito. El código para crear el login quedaría de la siguiente forma.

use master
go
create login Juanito with password = 'Plata001'

Ahora para asociar el login a un user de una base de datos llamada Supermercado. También se puede aprovechar para asignar a un esquema (Schema) aunque no este creado.

use Supermercado
create user Juanito for login Juanito
with default_schema = Soporte
go

Ahora puedo ver que en la base de datos Supermercado, ya está creado el usuario Juanito.

Login y users con SQL

Creación de esquemas en SQL

Ahora bien, vamos a trabajar con la creación de esquemas lo podemos hacer por medio de la interfaz gráfica de la siguiente manera. Posicionados en la base de datos en Security >> Schemas y clic con botón derecho del mouse para indicar New Schema…

Creación de esquemas en SQL

Ahora agrego nombre del esquema (Capacitacon) y el propietario, que en este caso es Juanito.

Creación de esquemas en SQL

Si me voy al apartado de Permissions (permisos), le doy todos los permisos a Juanito.

Crear esquema con SQL

Ahora se puede apreciar cómo es que queda agregado el esquema Capacitacion en la base de datos.

Esquemas con código SQL

Crear un Schema con código transaccional en SQL

Ahora voy a repetir el ejercicio, pero código SQL el cual quedaría de la siguiente forma. Esto es sin agregar permisos como lo hicimos anteriormente.

---Código de DonBloguero.com
---Creando el Schema asociado al user

create schema Ventas authorization Juanito
go

El resultado queda de la siguiente manera, mostrando un nuevo esquema llamado Ventas.

Creando esquema con código SQL

 

Autor: DonBloguero

Desarrollador Backend

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *