Tipos de Usuarios de La Base de Datos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

Tipos de Usuarios de la Base de Datos

El objetivo de la creacin de usuarios es establecer una cuenta segura y til,


que tenga los privilegios adecuados y los valores por defecto apropiados

Para acceder a los datos en una BD Oracle, se debe tener acceso a una
cuenta en esa BD. Cada cuenta debe tener una palabra clave o password asociada.
Una cuenta en una BD puede estr ligada con una cuenta de sistema operativo.
Los passwords son fijados cuando se crea un usuario y pueden ser alterados por
el DBA o por el usuario mismo. La BD almacena una versin encriptada del
password en una tabla del diccionario llamada dba_users. Si la cuenta en la BD
est asociada a una cuenta del sistema operativo puede evitarse la comprobacin
del password, dndose por vlida la comprobacin de la identidad del usuario
realizada por el SO.
Un usuario Oracle tiene las siguientes caracteristicas

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y


que inicie con una letra.

Un mtodo de autentificacion, el ms comun es un password pero Oracle


10G soporta otros mtodos como biometric, certificado y autentificacion por
medio de token.

Un tablespace de default, el cul es donde el usuario va a poder crear sus


objetos por defecto. Ojo, no porque tenga un tablespace de default va a
significar que puede crear objetos, o una quota de espacio. Estos permisos se
asignan de forma separada.

Un tablespace temporal, donde el usuario pueda crear sus objetos


temporales y hacer ordenar las consultas.

Un perfile de usuario, es decir las restricciones o privilegios de su cuenta.

Una cuenta MySQL se define en trminos de un nombre de usuario y el


equipo o equipos desde los que el usuario puede conectar al servidor. La cuenta
tambin tiene una contrasea (deseable). Los nombres de usuario y contraseas
en MySQL no estn relacionadas con los del sistema operativo.

Nombre de usuarios en MySQL pueden tener como mximo 16 caracteres


de longitud

La contrasea es segura incluso si los paquetes TCP/IP pasan por un sniffer


o la base de datos mysql se captura.

Usuarios normales. Son usuarios no sofisticados que interactan con el sistema mediante un
programa de aplicacin con una interfaz de formularios, donde puede rellenar los campos apropiados
del formulario. Estos usarios pueden tambin simplemente leer informes generados de la base de
datos.
Programadores de aplicaciones. Son profesionales informticos que escriben los programas de
aplicacin, utilizando herramientas para desarrollar interfaces de usuario, como las herramientas
de desarrollo rpido de aplicaciones (DRA), que facilitan crear los formularios e informes sin
escribir directamente el programa.
Usuario Final. Es la persona que utiliza los datos, esta persona ve datos convertidos en informacin:

Desarrollador de Aplicaciones: es la persona que desarrolla los sistemas que interactun con
la Base de Datos.

DBA: es la persona que asegura integridad, consistencia, redundancia, seguridad este es el


Administrador de Base de Datos quien sed encarga de realizar el mantenimiento diario o
peridico de los datos.

Usuarios sofisticados. Interactan con el sistema sin programas escritos, usando el lenguaje de
consulta de base de datos para hacer sus consultas. Los analistas que envan las consultas para
explorar los datos en la base de datos entran en esta categora, usando ellos las herramientas
de procesamiento analtico en lnea (OLAP, OnLine Analytical Processing), o herramientas
de recopilacin de datos.

Usuarios especializados. Son usuarios sofisticados que escriben aplicaciones de bases de datos
especializadas y adecuadas para el procesamiento de datos tradicional. Entre estas aplicaciones estn
los sistemas de diseo asistido por computadora, sistemas de base de conocimientos y sistemas
expertos, sistemas que almacenan datos de tipos de datos complejos (como grficos y de audio) y
sistemas de modelado de entorno.
Administradores de la base de datos (ABD). Son las personas que tienen el control central del
SGBD. Entre las funciones del ABD se encuentran:

Definicin del esquema de la base de datos.

Definicin de la estructura y el mtodo de acceso.

Modificacin del esquema y la organizacin fsica.

Concesin de autorizacin para el acceso a los datos.

Mantenimiento rutinario.

Creacin de Usuarios
CREATE USER: Crear un usuario oracle.
Un usuario es un nombre de acceso a la base de datos oracle asociado a una
clave (password).

Lo que puede hacer un usuario logeado a la base de datos depende de los


permisos que tenga asignados ya sea directamente (GRANT) como sobre algun
rol que tenga asignado (CREATE ROLE).
El perfil que tenga asignado influye en los recursos del sistema de los que
dispone un usuario a la hora de ejecutar Oracle (CREATE PROFILE).
?
1

CREATE USER usuarioLimitado

IDENTIFIED BY miClaveSecreta;

3
4

CREATE USER usuarioLimitado2

IDENTIFIED BY miClaveSecreta

PASSWORD EXPIRE;

?
1

CREATE USER usuarioLimitado

IDENTIFIED BY 'miClaveSecreta';

?
1

SELECT * FROM dba_users;

?
1

USE mysql;

SELECT host, user, password

FROM user;

Borrar usuarios

Tanto Oracle como MySQL permiten eliminar usuarios mediante la


sentencia DROP USER, con una sintaxis similar
?
1

DROP USER usuarioLimitado CASCADE;

CASCADE borra todos los objetos del esquema del usuario Oracle antes
de borrar el usuario. Si el esquema contiene tablas, Oracle borrar todos las tablas
y automticamente eliminar cualquier restriccin de integridas referencial
referida a claves primarias o nicas en otros esquemas
MySQL realiza la misma actividad mediante la combinacin de
sentencias REVOKE y DROP.
?
1

REVOKE ALL PRIVILEGES, GRANT OPTION

FROM usuario

3
4

DROP USER usuario

Comando GRANT

Se utiliza para crear usuarios y concederle previlegios. La sintaxis general


del comando GRANT es la siguiente:
?
1
2

GRANT privilegios (columnas) ON elemento


TO nombre_usuario IDENTIFIED BY 'contrasea' (with grant option);

Lo que esta dentro de los parentisis son opcionales, y los parentisis no hay
que ponerlos.
?
1
2

GRANT ALL ON * TO super IDENTIFIED BY 'algo'


WITH GRANT OPTION;

Roles
Un rol es una coleccin de privilegios del sistema y de objetos que se
otorgan a usuarios y a otras tareas. Oracle dispone de muchos roles
predeterminados mientras que MySQL no los soporta.
El rol CONNECECT permite al usuario conectarse a la base de datos,
crear tablas, vistas, secuencias, sinnimos y otros objetos en el esquema
asociado.
El rol RESOURCE permite permite al usuario utilizar los recursos tpicos
para la programacin de aplicaciones (clusters, disparadores, paquetes, funciones,
etc.)
El rol DBA, tpico de los administradores, permite al usuario realizar
cualquier funcin de base de datos y disponer de cualquier privilegio
La sentencia que permite crear roles es CREATE ROL. Su sintaxis es la
siguiente
1
2
3
4

CREATE ROLE rol


[ NOT IDENTIFIED
| IDENTIFIED {BY password | USING [usuario.] paquete
| EXTERNALLY | GLOBALLY} ];

NOT IDENTIFIED indica que no se requiere contrasea para utilizar el


rol, INDENTIFIED BY password indica que se requiere la contrase;a
especificada. EXTERNALLY crea
un
rol
y GLOBALLY crea un rol de usuario global.

de

Ejemplo: Crear un rol y asignarle privilegios


1
2
3

CREATE ROLE miPrimerRole;


GRANT SELECT, INSERT, UPDATE, DELETE ON tabla
TO miPrimerRole;

Ejemplo: Crear un rol y asignarle todos los privilegios

usuario

externo

1
2

CREATE ROLE miPrimerRole;


GRANT ALL ON tabla TO miPrimerROLE;

Ejemplo: Asignar un rol a un usuario


1

GRANT miPrimerRole TO miUsuario;

Ejemplo: Eliminar un rol


1

DROP ROLE miPrimerRole;

Vistas

Una vista es una tabla virtual cuyo contenido est definido por
una consulta..
Una vista es sencillamente un objeto de base de datos que presenta datos de
tablas. Se trata de una consulta SQL que est permanentemente almacenada en la
Base de datos y a la que se le asigna un nombre, de modo que los resultados de la
consulta almacenada son visibles atravs de la vista, y SQL permite acceder a
estos resultados como si fueran de hecho una tabla real en la base de datos.
Las tablas y las vistas comparten el mismo espacio de nombres en la base
de datos, por lo tanto, una base de datos no puede contener una tabla y una vista
con el mismo nombre.
Las vistas suelen utilizarse para centrar, simplificar y personalizar la
percepcin de la base de datos para cada usuario. Las vistas pueden emplearse
como mecanismos de seguridad, que permiten a los usuarios obtener acceso a los
datos por medio de la vista, pero no les conceden el permiso de obtener acceso
directo a las tablas subyacentes de la vista. Las vistas se pueden utilizar para
realizar particiones de datos y para mejorar el rendimiendo cuando se copian, se
importan y se exportan datos.
Mediante vistas es posible presentar datos de distintos servidores. Por
ejemplo, para combinar datos de distintos servidores remotos o en un servidor de
multiples procesadores, cada uno de los cuales almacenan datos para una regin
distinta de su organizacin, puede crear consultas distribuidas o paralelas
aumentando la eficiencia de las consultas.
Mediante
diversas
clusulas
es
factible crear, modificadar, eliminar y administrar vistas. La sintaxis bsica para
estas clusulas es generica entre diversos gestores de base de datos. Sin embargo

en lo particular cada gestor implementa la administracin de estas de forma


diferente. En este documentos se presenta la sintaxis particular dee Oracle 10g,
comparando en forma generica con MySQL 5.
La sintaxis bsica de una vista (Oracle y MySQL) es:
?
1

CREATE VIEW nombre_vista AS consulta;

Sintaxis CREATE VIEW

?
1

CREATE [OR REPLACE]

VIEW nombre_vista AS sentencia_select

[WITH [CASCADED | LOCAL] CHECK OPTION] WITH READ ONLY

<img alt="" src="images/oracle.jpg" class="derecha">

?
1

CREATE [OR REPLACE]

[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

VIEW nombre_vista [(columnas)]

AS sentencia_select

[WITH [CASCADED | LOCAL] CHECK OPTION]

Ejemplo: Paises del continente Americano


?
1

CREATE OR REPLACE VIEW america AS

SELECT P.nombre, P.capital

FROM continente C, pais P

WHERE (C.nombreContinente = 'Amrica')

AND (C.idContinente = P.idContinente)

Ejemplo: En el futbol se conoce como Caballo de Hierro a los deportistas


que jugaron los 90 minutos en todos los partidos de un campeonato. Y
Considerando que en el torneo de Apertura 2011 se disputaron 17 fechas en la
fase regular. La vista que define a estos futbolistas es la siguiente.
?
1

CREATE OR REPLACE VIEW caballoDeHierro AS

SELECT E.nombreEquipo, J.nombre

FROM equipo E, jugadores J

WHERE E.idEquipo = J.idEquipo

AND J.JC = 17

ORDER BY E.nombreEquipo, J.nombre;

Ahora solo tenemos que hacer una consulta para obtener la vista
correspondiente.

SELECT * FROM caballoDeHierro;

Ejemplo. El cual modificara la vista caballo de hierro con los jugadores


que recibieron 3 amonestaciones o menos.

CREATE OR REPLACE VIEW caballoDeHierro AS

SELECT P.nombrePosicion, E.nombreEquipo equipo, J.nombre, J.JJ, J.TA

FROM equipo E, jugador J, posicion P

WHERE E.idEquipo = J.idEquipo

AND P.idPosicion = J.idPosicion

AND J.JC = 17 AND (J.ta <= 3 )

ORDER BY E.nombreEquipo, J.nombre;

SELECT * FROM caballoDeHierro;

Actualizacin de vistas

Algunas vistas pueden actualizarse mediante sentencias INSERT,


DELETE o UPDATE sobre ellas, considerando las siguientes reglas:

No

se

debe

especificar DISTINCT para

que

las

filas

duplicadas no se eliminen de los resultados de las consultas.

La clusula FROM debe especificar slo una tabla


actualizable.

Cada elemento de seleccin debe ser una referencia de


columna simple ( no puede contener expresiones, columnas
calculadas, ni funciones de columna).

La clusula WHERE no debe incluir una subconsulta.


La consulta no debe incluir una clusula GROUP

BY o HAVING.

La consulta no debe incluir sentencias: UNION, UNION


ALL, INTERSECT, MINUS

Si una columna NOT NULL no contiene un DEFAULT, no es


posible insertar mediante vistas

Para que la vista sea de solo lectura, usaremos la clusula WITH READ
ONLY (Oracle). Observe que esta opcin no soporta la clsula ORDER BY

La clusula CHECK OPTION evita que sean insertados o modificados


registro que no sean posteriormente incluidos en la vista mediante la
sentenciaWHERE.
Ejemplo: Poblacin por entidad federativa 2010 INEGI (INSTITUTO
NACIONAL DE ESTADISTICA, GEOGRAFIA E INFORMATICA). El
ejemplo siguiente crea una vista que usa la clusula CHECK OPTION donde
seleccionan aquellas entidades federativas que tienen menos de 2 millones de
habitantes.

CREATE TABLE entidad (

estado

CHAR(30) NOT NULL,

poblacion

NUMBER

);

CREATE TABLE entidad (

NOT NULL

estado

CHAR(30) NOT NULL,

poblacion

INTEGER NOT NULL

) ENGINE = InnoDB;

INSERT INTO entidad values ('Estado de Mxico',

15175862);

INSERT INTO entidad values ('Distrito Federal',

8851080);

INSERT INTO entidad values ('Veracruz',

7643194);

INSERT INTO entidad values ('Jalisco',

7350682);

INSERT INTO entidad values ('Puebla',

5779829);

INSERT INTO entidad values ('Guanajuato',

5486372);

INSERT INTO entidad values ('Chiapas',

4796580);

INSERT INTO entidad values ('Nuevo Len',

4653458);

INSERT INTO entidad values ('Michoacn de Ocampo',4351037);

10

INSERT INTO entidad values ('Oaxaca',

3801962);

11

INSERT INTO entidad values ('Chihuahua',

3406465);

12

INSERT INTO entidad values ('Guerrero',

3388768);

13
14

CREATE OR REPLACE VIEW entidades AS

15

SELECT * FROM entidad

16

WHERE poblacion < 2000000

17

WITH CHECK OPTION;

Ahora considere la siguiente informacin. Para insertarla en la vista recien


creada.
Entidad

Poblacin

Tamaulipas

3,268,554

Baja California

3,155,070

Sinaloa

2,767,761

Coahuila de Zaragoza

2,748,391

Hidalgo

2,665,018

Sonora

2,662,480

San Luis Potos

2,585,518

Tabasco

2,238,603

Yucatn

1,955,577

Entidad

Poblacin

Quertaro

1,827,937

Morelos

1,777,227

Durango

1,632,934

Zacatecas

1,490,668

Quintana Roo

1,325,578

Aguascalientes

1,213,445

Tlaxcala

1,169,936

Nayarit

1,084,979

Campeche

822,441

Colima

650,555

Baja California Sur

637,026

Con la clusula CHECK OPTION cada vez que se trata de hacer una
violacin de la condicin dentro del WHERE obtendremos un error ORA01402. Que error le regresa MySQL
Borrado de vistas con DROP VIEW

La sentencia DROP VIEW permite borrar una vista de la base de datos. Su


sintaxis se presenta a continuacin:

DROP VIEW [usuario.] nombre_vista [CASCADE CONSTRAINTS];

DROP VIEW [IF EXISTS]

nombre_vista;

También podría gustarte