Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido de la práctica
En esta sección del documento se ilustra el proceso de crear usuarios específicos para ser
asignados a una base de datos en cuestión.
Ejemplo
Crear 5 bases de datos (BD_TESTX, la X hace referencia a 1, 2, 3, 4, 5) de prueba usando el
siguiente script:
USE [master];
GO
DROP DATABASE IF EXISTS BD_TEST1;
GO
CREATE DATABASE BD_TEST1;
GO
USE BD_TEST1;
GO
CREATE TABLE Artistas (
id int IDENTITY(1,1) NOT NULL PRIMARY KEY,
nombres varchar(255) NOT NULL,
apellidos varchar(255) NOT NULL,
);
GO
CREATE TABLE Productores (
id int IDENTITY(1,1) NOT NULL PRIMARY KEY,
nombres varchar(255) NOT NULL,
apellidos varchar(255) NOT NULL,
);
GO
CREATE TABLE Canciones (
id int IDENTITY(1,1) NOT NULL PRIMARY KEY,
artista_id INT NOT NULL,
productor_id INT NOT NULL,
FOREIGN KEY (artista_id) REFERENCES Artistas (id),
FOREIGN KEY (productor_id) REFERENCES Productores (id),
);
Luego de crear la base de datos proceda a crear 5 usuarios (usuario1, 2, 3,4 y 5) para cada base
de datos respectivamente, a continuación se ilustra la creación del usuario “usuario1”:
USE [BD_TEST1]
GO
CREATE LOGIN usuario1 WITH PASSWORD = '123456'
GO
CREATE USER [usuario1] FOR LOGIN [usuario1]
GO
-- OROTOGAR PERMISO PARA ESTABLECER CONEXIÓN CON EL SERVIDOR
USE [BD_TEST1];
GO
GRANT CONNECT TO usuario1;
Ahora proceda a restringir a cada usuario la posibilidad de acceder las otras bases de datos.
USE [BD_TEST1]
GO
SP_DROPUSER 'usuario1';
GO
SP_CHANGEDBOWNER 'usuario1';
GO
ALTER authorization ON DATABASE::BD_TEST1 TO usuario1
En el siguiente ejemplo se ilustra el proceso de crear una base de datos con dos esquemas. Luego
se crean dos usuarios, cada usuario solo podrá acceder a un esquema en específico.
Ejemplo
En la conexión por defecto, proceda a crear la siguiente base de datos:
USE [master];
GO
DROP DATABASE IF EXISTS [BD_TEST6]
GO
CREATE DATABASE [BD_TEST6]
GO
USE [BD_TEST6]
GO
DROP SCHEMA IF EXISTS [operarios]
GO
DROP SCHEMA IF EXISTS [lectores]
GO
CREATE SCHEMA [operarios]
GO
CREATE SCHEMA [lectores]
GO
USE BD_TEST6;
GO
CREATE TABLE operarios.bodegas (
id int PRIMARY KEY,
descripcion varchar(45) DEFAULT NULL,
telefono varchar(45) DEFAULT NULL
);
GO
CREATE TABLE operarios.proveedores (
id int PRIMARY KEY,
descripcion varchar(45) NOT NULL,
direccion varchar(45) NOT NULL,
postal varchar(45) NOT NULL,
pais varchar(45) NOT NULL
);
GO
CREATE TABLE operarios.categorias (
id int PRIMARY KEY,
descripcion varchar(45) UNIQUE,
);
GO
CREATE TABLE operarios.clientes (
id int PRIMARY KEY,
nombres varchar(45) DEFAULT NULL,
apellidos varchar(45) DEFAULT NULL,
direccion varchar(45) DEFAULT NULL,
ciudad varchar(45) DEFAULT NULL,
postal varchar(45) DEFAULT NULL,
pais varchar(45) DEFAULT NULL
);
GO
CREATE TABLE operarios.empleados (
id int PRIMARY KEY,
nombres varchar(45) DEFAULT NULL,
apellidos varchar(45) DEFAULT NULL,
fecha_cumple date DEFAULT NULL
);
GO
CREATE TABLE lectores.ordenes (
id int PRIMARY KEY,
fecha date NOT NULL,
empleado_id int NOT NULL,
cliente_id int NOT NULL,
bodega_id int NOT NULL
FOREIGN KEY (empleado_id) REFERENCES operarios.empleados (id),
FOREIGN KEY (cliente_id) REFERENCES operarios.clientes (id),
FOREIGN KEY (bodega_id) REFERENCES operarios.bodegas (id)
);
GO
CREATE TABLE lectores.productos (
id int PRIMARY KEY,
nombre varchar(45) DEFAULT NULL,
unidad varchar(45) DEFAULT NULL,
precio varchar(45) DEFAULT NULL,
proveedor_id int NOT NULL,
categoria_id int NOT NULL
FOREIGN KEY (proveedor_id) REFERENCES operarios.proveedores (id),
FOREIGN KEY (categoria_id) REFERENCES operarios.categorias (id)
);
GO
CREATE TABLE operarios.productos_ordenes (
id int PRIMARY KEY,
producto_id INT NOT NULL,
orden_id int NOT NULL,
cantidad int NOT NULL
FOREIGN KEY (producto_id) REFERENCES lectores.productos (id),
FOREIGN KEY (orden_id) REFERENCES lectores.ordenes (id)
);
Listar las tablas en los esquemas creados
USE [BD_TEST6];
GO
SELECT * FROM INFORMATION_SCHEMA.TABLES;
Ahora proceda a crear dos usuarios uno llamado operario1 y el otro llamado lector1 ambos con la
siguiente clave: 123456. El usuario operario, debe poner ver únicamente las tablas del esquema
operarios y el usuario lector1 solo debe poder visualizar las tablas del esquema lectores.
-- CREACIÓN DE USUARIO lector1
USE [BD_TEST6]
GO
CREATE LOGIN [lector1] WITH PASSWORD = '123456'
GO
CREATE USER [lector1] FOR LOGIN [lector1]
GO
GRANT CONNECT TO lector1;
Usuario operario1
Ejercicio propuesto
Agrupar la base de datos del proyecto formativo en al menos dos esquemas que usted considere.
Crear dos usuarios, uno por cada esquema.