SlideShare uma empresa Scribd logo
1 de 39
SQL(Data Control Language)
• SQL provee mecanismos de seguridad
limitados.
• Se confía en el software para implementar un
framework de seguridad más robusto.
• Los vendedores de Bases de Datos
implementan los varios aspectos de seguridad
en distintas maneras.
Mecanismos de Seguridad Básica
• Hay tres niveles de seguridad comunes para todos los
RDBMS (Relational DataBase Management Systems):
– Autenticación: El usuario se conecta al RDBMS.
– Autorización: El usuario obtiene acceso a la base de datos
o a los objetos del esquema de la base de datos para
realizar ciertas acciones, basados en el set de privilegios
asignados al usuario.
– Auditar: Para monitorear actividad sospechosa y realizar
un análisis.
• En lo que difieren es en la manera en que cada uno de
estos RDBMS implementan estos niveles.
Identificación y autenticación
• La primera línea de defensa es la autenticación.
• Antes de acceder al RDBMS se debe proveer
suficiente información validada ya sea por el
RDBMS o por el sistema operativo en el cual esta
base de datos se encuentra instalada.
• Una vez que la identidad es autenticada, se
puede proceder con el intento de acceder a los
recursos, objetos y datos de la base de datos.
Autorización y Control de acceso
• Una vez que el usuario es autenticado y se le
concede acceso a la base de datos, el RDBMS
emplea un complejo sistema de privilegios
(permisos) para objetos particulares de la
base de datos.
• Estos privilegios incluyen permisos para
acceder, modificar, destruir o ejecutar objetos
relevantes de la base de datos, así como
añadir, modificar y borrar datos.
Encriptación
• Provee una capa adicional de
seguridad, protegiendo los datos de personas
no autorizadas.
• Aún si se obtiene acceso a la base de datos, no
será fácil descifrar datos encriptados.
Integridad y Consistencia
• Mientras la seguridad se basa en la
autenticación y autorización de
procedimientos, la integridad de los datos
juega el rol de proteger los datos de
manipulación no intencional o maliciosa.
• Por ejemplo, aun si un usuario obtiene acceso
a la base de datos (robando la clave), aun
debe seguir reglas relacionales para manipular
datos.
• Entre estas reglas, la que no se permite registros
huérfanos. Es decir no se puede borrar registros de una
tabla de un padre sin entender las relaciones de la base
de datos.
• Aunque algunos RDBMS implementan la característica
¨CASCADE¨, que remueve registros hijos cuando se
borrar el del padre.
• Otra regla es la de no insertar un registro duplicado en
una columna protegida con un UNIQUE constraint.
• Otra regla, la de no ingresar datos inválidos que violen
un CHECK constraint.
Auditar
• Provee medios para monitorear actividad de
base de datos, ambas legítima y no
autorizadas.
• Preserva la bitácora de intentos de acceso a la
base de datos, ya sean exitosos o fallidos.
• Tambien los intentos de delete e inserts.
• Es un componente necesario para ser
considerado para una certificación de
seguridad.
Definiendo un usuario
• SQL99 no especifica alguna sintaxis especial o alguna
forma de crear un usuario en la base de datos.
• Los vendedores de bases de datos han creado algunas
soluciones ingeniosas para esto.
• Oracle hace poca distinción entre un usuario y el
esquema de la base de datos, DB2 UDB usa solo
usuario definidos por el sistema operativo y Microsoft
SQL Server combina ambos mecanismos, usando
cuentas de Windows y procedimientos especiales del
sistema para añadir usuarios a la base de datos.
Database User
• Es alguien que hace uso de los servicios que el
servidor del RDBMS provee. Puede ser una
aplicación, un administrador, o cualquiera que
acceda a la base de datos en algún momento.
• Esta es la primera línea de defensa cuando
hablamos de los aspectos de seguridad.
Crear un usuario en MySQL
• CREATE USER user [IDENTIFIED BY
[PASSWORD] 'password’] [, user [IDENTIFIED
BY [PASSWORD] 'password']]
• Para crear un usuario se necesita como
mínimo un nombre de usuario y una
contraseña, el resto es opcional.
• CREATE USER alumno IDENTIFIED BY
‘clavealumno’;
En oracle
• Para crear un usuario identificado por el sistema
operativo se usa EXTERNALLY.
• Si usamos PASSWORD EXPIRE, le estamos
diciendo a Oracle que la contraseña para este
usuario expira inmediatamente, forzando al
usuario a seleccionar una contraseña diferente en
la próxima conexión a la base de datos.
• ACCOUNT LOCK especifica por ejemplo que el
acceso se bloquee después de muchos intentos
fallidos o deshabilite la cuenta de un usuario
cuando el empleado abandone la compañía.
En oracle
• Cuando un usuario es creado, un esquema
correspondiente a ese usuario es creado
también.
• El nuevo usuario no tiene derechos o
privilegios en el RDBMA, pero se le debe
conceder el privilegio de CONNECT a la base
de datos Oracle.
Borrar un usuario en MySQL
• DROP USER <user name>;
• En MySQL el usuario está separado de la base
de datos
Borrar un usuario en Oracle
• DROP USER <user name> [CASCADE];
• CASCADE especifica que todos los objetos en el
esquema del usuario deben borrarse antes de borrar al
usuario.
• Oracle no permite borrar un usuario cuyo esquema
contiene algún objeto, a menos que se especifique esta
cláusula.
• DROP USER <user name> [CASCADE];
• DROP USER alumno CASCADE;
ALTER USER
• Provee una manera conveniente de modificar
las propiedades del usuario sin la necesidad
de hacerle DROP al usuario y luego recrearlo
desde el principio.
ALTER USER user_specification
[, user_specification] ...
user_specification:
user PASSWORD EXPIRE
Crear una base de datos
• Oracle 10gExpress Edition trae creada por defecto una
base de datos llamada XE en la cual se puede crear
usuarios y trabajar directamente con ella.
• Aunque una sola base de datos XE puede correr en una
computadora, lo importante es que no se necesita una
base de datos para cada aplicación que se cree. Oracle
usa el concepto de esquemas para separar
aplicaciones.
CREATE DATABASE nuevabd;
CREATE DATABASE ha fallado
base de datos ya montada
Connect
• La sintaxis del comando es la siguiente:
conn[ect]
<username>/<password>[@<database_sid>]
connect alumno/clavealumno@XE;
conn alumno/clavealumno;
connect alumno; (pide la clave)
DISCONNECT
• Se puede desconectar de Oracle pero seguir
en el SQL*Plus”:
DISC[ONNECT]
Administrando la seguridad con
Privilegios
• Un RDBMS es una colección de
objetos, esquemas, tablas, vistas, procedimien
tos, etc. Así como los procesos que
administran estos objetos.
• Restringir el acceso a estos objetos es un
mecanismo de seguridad esencial
implementado en el nivel de SQL a través del
sistema de privilegios.
Privilegios
• Representan el derecho de un usuario en
particular para acceder, crear, manipular y
destruir varios objetos dentro de una base de
datos, así como realizar tareas administrativas.
• Se los puede conceder a un usuario o ROLE.
• Se los puede dividir en dos categorías:
– Privilegios de Sistema
– Privilegios de Objetos
Privilegios a nivel de Sistema
• Permite a los usuarios realizar tareas
administrativas en un RDBMS
• Crear una base de datos
• Crear y Borrar Usuario
• Crear, alterar y destruir objetos de bases de
datos, etc
• Se necesita un alto nivel de autoridad en el
RDBMS para conceder o tener privilegios de
sistema
Privilegios a nivel de Objeto
• Estos privilegios pueden llegar hasta el nivel
de columna (si el objeto de la base de datos es
una tabla o vista), o a cualquier otro objeto en
la base de datos como stored
procedures, funciones y triggers.
GRANT en MySQL
CREATE USER 'monty'@'localhost' IDENTIFIED BY
'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost’
WITH GRANT OPTION;
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%’ WITH
GRANT OPTION;
CREATE USER 'admin'@'localhost';
GRANT RELOAD,PROCESS ON *.* TO
'admin'@'localhost';
CREATE USER 'dummy'@'localhost';
GRANT en Oracle
• Para ¨Conceder¨ privilegios:
GRANT [ALL [PRIVILEGES]] | <privilege,...> [ON
<object_name>] TO <user> | <group> | <role>
[WITH GRANT OPTION]
Opción Descripción Aplica a
ADMIN OPTION Permite al usuario GRANT
privilegios del sistema a otros
usuario o roles
Oracle 9i
GRANT OPTION Permite al usuario GRANT
privilegios de objetos a otros
usuario o roles
Oracle 9i, Microsoft
SQL Server 2000,
IBM DB2 UDB 8.1
SQL92/99 Standard
HIERARCHY OPTION Indica que el privilegio de
objeto es concedido no solo
para el objeto sino para todos
los objetos derivados.
Oracle 9i
• GRANT ALL [PRIVILEGES] | <system
privilege,...> | <role> TO <user> | <role> |
<PUBLIC> [IDENTIFIED BY <password>] [WITH
ADMIN OPTION];
• GRANT ALL PRIVILEGES TO alumno IDENTIFIED
BY clavealumno WITH ADMIN OPTION;
Privilegios del Sistema en Oracle
• ALTER SYSTEM
• AUDIT SYSTEM
• CREATE [PUBLIC] DATABASE LINK
• DROP [PUBLIC] DATABASE LINK
• CREATE ANY INDEX
• ALTER ANY INDEX
• DROP ANY INDEX
• CREATE [ANY] MATERIALIZED VIEW
• ALTER ANY MATERIALIZED VIEW
• DROP ANY MATERIALIZED VIEW
• CREATE [ANY] OPERATOR
• DROP ANY OPERATOR
• EXECUTE ANY OPERATOR
• CREATE [ANY] PROCEDURE
• DROP ANY PROCEDURE
• EXECUTE ANY PROCEDURE
• CREATE PROFILE
• ALTER PROFILE
• DROP PROFILE
• CREATE ROLE
• ALTER ANY ROLE
• DROP ANY ROLE
• GRANT ANY ROLE
• CREATE [ANY] SEQUENCE
• ALTER ANY SEQUENCE
• DROP ANY SEQUENCE
• SELECT ANY SEQUENCE
• CREATE SESSION
• ALTER SESSION
Para verlos todos en Oracle: select * from DBA_SYS_PRIVS;
Privilegios del Sistema en Oracle
• CREATE [ANY | PUBLIC ] SYNONYM
• DROP [ANY | PUBLIC ] SYNONYM
• CREATE [ANY] TABLE
• ALTER ANY TABLE
• DELETE ANY TABLE
• DROP ANY TABLE
• INSERT ANY TABLE
• LOCK ANY TABLE
• SELECT ANY TABLE
• UPDATE ANY TABLE
• CREATE TABLESPACE
• ALTER TABLESPACE
• DROP TABLESPACE
• ALTER ANY TRIGGER
• DROP ANY TRIGGER
• CREATE [ANY] TYPE
• ALTER ANY TYPE
• DROP ANY TYPE
• EXECUTE ANY TYPE
• UNDER ANY TYPE
• CREATE USER
• ALTER USER
• BECOME USER
• DROP USER
• CREATE [ANY] VIEW
• DROP ANY VIEW
• UNDER ANY VIEW
• COMMENT ANY TABLE
• GRANT ANY PRIVILEGE
• SELECT ANY DICTIONARY
Para verlos todos en Oracle: select * from DBA_SYS_PRIVS;
Privilegios de Objetos En Oracle
• INSERT
• SELECT
• UPDATE
• DELETE
• ALTER
• INDEX
• UNDER
• EXECUTE
• REFERENCES
Privilegios en MySQL
Privilegios en MySQL
http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html
En MySQL
• GRANT SELECT, INSERT ON *.* TO
'someuser'@'somehost';
• GRANT CREATE ROUTINE ON mydb.* TO
'someuser'@'somehost';
• GRANT EXECUTE ON PROCEDURE
mydb.myproc TO 'someuser'@'somehost';
En Oracle
GRANT CREATE TABLE TO alumno IDENTIFIED BY clavealumno WITH
ADMIN OPTION;
• Si tiene los privilegios suficientes el usuario alumno con la
contraseña clavealumno se creará. Pero no se puede usar este
usuario y contraseña para conectarse a la base de datos si al usuario
alumno no se le ha concedido el privilegio de sistema CREATE
SESSION.
• El error que se muestra es:
user ALUMNO lacks CREATE SESSION privilege;
logon denied
• Para corregirlo:
GRANT CREATE SESSION TO alumno IDENTIFIED BY clavealumno WITH
ADMIN OPTION;
REVOKE en Oracle
• Revoca los privilegios, a nivel de sistema u
objeto, de un usuario, rol o grupo.
REVOKE [GRANT OPTION FOR] ALL [PRIVILEGES] |
<privilege>,... FROM USER <user> | GROUP
<group> | PUBLIC [CASCADE | RESTRICT]
Se puede revocar un privilegio o un GRANT OPTION.
Por ejemplo un usuario puede perder su
habilidad de conceder privilegios pero sus
privilegios no se ven afectados.
Revocando Privilegios de Sistema
REVOKE ALL [PRIVILEGES] | <role> |
<system_privilege>,... FROM <user> | <role> |
PUBLIC;
REVOKE CREATE TABLE FROM alumno;
El efecto de Revoke es inmediato
Revocando Privilegios de Objeto
REVOKE ALL [PRIVILEGES] | <object_privilege,...>
[(<column>)] ON [<schema>].<object>] FROM
<user> | <role> | PUBLIC CASCADE CONSTRAINTS
[FORCE];
REVOKE INSERT, DELETE, UPDATE
(pago_empleado, pago_empleado2) ON
EMPLEADO FROM PUBLIC;
Todos los objetos dependientes como vistas creadas
por el usuario que perdió el privilegio se vuelven
inválidas.
REVOKE en MYSQL
• REVOKE
• priv_type [(column_list)]
• [, priv_type [(column_list)]] ...
• ON [object_type] priv_level
• FROM user [, user] ...
• REVOKE ALL PRIVILEGES, GRANT OPTION
• FROM user [, user] ...
• REVOKE PROXY ON user
• FROM user [, user] ...
• REVOKE INSERT ON *.* FROM
'jeffrey'@'localhost';
• REVOKE ALL PRIVILEGES, GRANT OPTION
FROM user [, user] ...

Mais conteúdo relacionado

Mais procurados

Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_oooYuzel Sederap
 
1.3. MANEJO DE CONTROL DE DATOS
1.3.	MANEJO DE CONTROL DE DATOS1.3.	MANEJO DE CONTROL DE DATOS
1.3. MANEJO DE CONTROL DE DATOSSergio Perez
 
Seguridad en SQL Server
Seguridad en SQL ServerSeguridad en SQL Server
Seguridad en SQL ServerRodrigo Corral
 
Yupa cesar bdii_t7
Yupa cesar bdii_t7Yupa cesar bdii_t7
Yupa cesar bdii_t7Cesar Yupa
 
Administracion de la seguridad de sql server
Administracion de la seguridad de sql serverAdministracion de la seguridad de sql server
Administracion de la seguridad de sql serveranaleydilinaresserra1
 
Privilegios y funciones en MySQL
Privilegios y funciones en MySQLPrivilegios y funciones en MySQL
Privilegios y funciones en MySQLフ乇丂ひ丂
 
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeIndustria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeRodrigo Corral
 
Creación Aplicación Android
Creación Aplicación AndroidCreación Aplicación Android
Creación Aplicación AndroidMiller Gs
 
permisos de ejecucion el sql
permisos de ejecucion el sql permisos de ejecucion el sql
permisos de ejecucion el sql Majo Tapia
 
04 Primeros pasos con my sql
04 Primeros pasos con my sql04 Primeros pasos con my sql
04 Primeros pasos con my sqltoniserna
 

Mais procurados (18)

Sql 2008
Sql 2008Sql 2008
Sql 2008
 
Seguridad 2° exp_ooo
Seguridad 2° exp_oooSeguridad 2° exp_ooo
Seguridad 2° exp_ooo
 
1.3. MANEJO DE CONTROL DE DATOS
1.3.	MANEJO DE CONTROL DE DATOS1.3.	MANEJO DE CONTROL DE DATOS
1.3. MANEJO DE CONTROL DE DATOS
 
Seguridad en SQL Server
Seguridad en SQL ServerSeguridad en SQL Server
Seguridad en SQL Server
 
Yupa cesar bdii_t7
Yupa cesar bdii_t7Yupa cesar bdii_t7
Yupa cesar bdii_t7
 
Administracion de la seguridad de sql server
Administracion de la seguridad de sql serverAdministracion de la seguridad de sql server
Administracion de la seguridad de sql server
 
Privilegios y funciones en MySQL
Privilegios y funciones en MySQLPrivilegios y funciones en MySQL
Privilegios y funciones en MySQL
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Mysql
MysqlMysql
Mysql
 
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeIndustria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
 
Presentación1
Presentación1Presentación1
Presentación1
 
Creación Aplicación Android
Creación Aplicación AndroidCreación Aplicación Android
Creación Aplicación Android
 
Seguridad tsql sql server 2008
Seguridad tsql sql server 2008Seguridad tsql sql server 2008
Seguridad tsql sql server 2008
 
Abd2
Abd2Abd2
Abd2
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
permisos de ejecucion el sql
permisos de ejecucion el sql permisos de ejecucion el sql
permisos de ejecucion el sql
 
04 Primeros pasos con my sql
04 Primeros pasos con my sql04 Primeros pasos con my sql
04 Primeros pasos con my sql
 

Destaque

Concepto erp
Concepto erpConcepto erp
Concepto erprcheo22
 
Administración de base de datos oracle - sesion 12
Administración de base de datos oracle -  sesion 12Administración de base de datos oracle -  sesion 12
Administración de base de datos oracle - sesion 12Sefira111
 
Oracle Database 12c: Privilegios, Usuarios y Roles
Oracle Database 12c: Privilegios, Usuarios y RolesOracle Database 12c: Privilegios, Usuarios y Roles
Oracle Database 12c: Privilegios, Usuarios y RolesDeiby Gómez
 
Seguridad Oracle 11g R2
Seguridad Oracle 11g R2Seguridad Oracle 11g R2
Seguridad Oracle 11g R2Carmen Soler
 
Resumen fundamentos de sistemas de bases de datos
Resumen fundamentos de sistemas de bases de datosResumen fundamentos de sistemas de bases de datos
Resumen fundamentos de sistemas de bases de datosaula40tics2finanzas
 
SEGURIDAD DE BASE DE DATOS
SEGURIDAD DE BASE DE DATOSSEGURIDAD DE BASE DE DATOS
SEGURIDAD DE BASE DE DATOSAngel Feijo
 
Base de datos (conceptos básicos )
Base de datos (conceptos básicos )Base de datos (conceptos básicos )
Base de datos (conceptos básicos )juandavid1118
 

Destaque (14)

Concepto erp
Concepto erpConcepto erp
Concepto erp
 
Seguridad de datos teoría
Seguridad de datos   teoríaSeguridad de datos   teoría
Seguridad de datos teoría
 
Administración de base de datos oracle - sesion 12
Administración de base de datos oracle -  sesion 12Administración de base de datos oracle -  sesion 12
Administración de base de datos oracle - sesion 12
 
Oracle
OracleOracle
Oracle
 
Oracle Database 12c: Privilegios, Usuarios y Roles
Oracle Database 12c: Privilegios, Usuarios y RolesOracle Database 12c: Privilegios, Usuarios y Roles
Oracle Database 12c: Privilegios, Usuarios y Roles
 
Tema9
Tema9Tema9
Tema9
 
Seguridad Oracle 11g R2
Seguridad Oracle 11g R2Seguridad Oracle 11g R2
Seguridad Oracle 11g R2
 
Seguridad sql server
Seguridad sql serverSeguridad sql server
Seguridad sql server
 
Resumen fundamentos de sistemas de bases de datos
Resumen fundamentos de sistemas de bases de datosResumen fundamentos de sistemas de bases de datos
Resumen fundamentos de sistemas de bases de datos
 
SEGURIDAD DE BASE DE DATOS
SEGURIDAD DE BASE DE DATOSSEGURIDAD DE BASE DE DATOS
SEGURIDAD DE BASE DE DATOS
 
Base de Dato Oracle
Base de Dato OracleBase de Dato Oracle
Base de Dato Oracle
 
Taller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridadTaller de Base de Datos - Unidad 4 seguridad
Taller de Base de Datos - Unidad 4 seguridad
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos (conceptos básicos )
Base de datos (conceptos básicos )Base de datos (conceptos básicos )
Base de datos (conceptos básicos )
 

Semelhante a Sql4

Administracion de base de datos postgresql
Administracion de base de datos postgresqlAdministracion de base de datos postgresql
Administracion de base de datos postgresqlAlvaro Paz
 
Administracion de base de datos postgresql
Administracion de base de datos postgresqlAdministracion de base de datos postgresql
Administracion de base de datos postgresqlAlvaro Paz
 
Abf leccion 14
Abf leccion 14Abf leccion 14
Abf leccion 14victdiazm
 
USUARIOS profile en oracle base de datos
USUARIOS profile en oracle base de datosUSUARIOS profile en oracle base de datos
USUARIOS profile en oracle base de datosNelsonMamaniRamos
 
Integridad y seguridad de la informacion
Integridad y seguridad de la informacionIntegridad y seguridad de la informacion
Integridad y seguridad de la informacionGabo101101
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico prácticoTitiushko Jazz
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico prácticoTitiushko Jazz
 
Características Generales de SQL Server.pdf
Características Generales de SQL Server.pdfCaracterísticas Generales de SQL Server.pdf
Características Generales de SQL Server.pdfjazmitia1983
 
Administracion de la seguridad de sql server
Administracion de la seguridad de sql serverAdministracion de la seguridad de sql server
Administracion de la seguridad de sql serverana leydi linares serrano
 
Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDBliras loca
 
2. administracion de la seguridad
2.  administracion de la seguridad2.  administracion de la seguridad
2. administracion de la seguridadNestor Lopez
 
17 adm bases de datos abd5501 (04 unidad 3 oracle)
17 adm bases de datos abd5501 (04 unidad 3   oracle)17 adm bases de datos abd5501 (04 unidad 3   oracle)
17 adm bases de datos abd5501 (04 unidad 3 oracle)La_Conchito
 
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
VenatasydesventajasSGBD.pdf
VenatasydesventajasSGBD.pdfVenatasydesventajasSGBD.pdf
VenatasydesventajasSGBD.pdfssuser948499
 

Semelhante a Sql4 (20)

Administracion de base de datos postgresql
Administracion de base de datos postgresqlAdministracion de base de datos postgresql
Administracion de base de datos postgresql
 
Administracion de base de datos postgresql
Administracion de base de datos postgresqlAdministracion de base de datos postgresql
Administracion de base de datos postgresql
 
Abf leccion 14
Abf leccion 14Abf leccion 14
Abf leccion 14
 
USUARIOS profile en oracle base de datos
USUARIOS profile en oracle base de datosUSUARIOS profile en oracle base de datos
USUARIOS profile en oracle base de datos
 
Integridad y seguridad de la informacion
Integridad y seguridad de la informacionIntegridad y seguridad de la informacion
Integridad y seguridad de la informacion
 
Segruridad en sql server
Segruridad en sql serverSegruridad en sql server
Segruridad en sql server
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico práctico
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico práctico
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
Características Generales de SQL Server.pdf
Características Generales de SQL Server.pdfCaracterísticas Generales de SQL Server.pdf
Características Generales de SQL Server.pdf
 
Administracion de la seguridad de sql server
Administracion de la seguridad de sql serverAdministracion de la seguridad de sql server
Administracion de la seguridad de sql server
 
Semana 01.pdf
Semana 01.pdfSemana 01.pdf
Semana 01.pdf
 
Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDB
 
2. administracion de la seguridad
2.  administracion de la seguridad2.  administracion de la seguridad
2. administracion de la seguridad
 
17 adm bases de datos abd5501 (04 unidad 3 oracle)
17 adm bases de datos abd5501 (04 unidad 3   oracle)17 adm bases de datos abd5501 (04 unidad 3   oracle)
17 adm bases de datos abd5501 (04 unidad 3 oracle)
 
17988998.ppt
17988998.ppt17988998.ppt
17988998.ppt
 
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
VenatasydesventajasSGBD.pdf
VenatasydesventajasSGBD.pdfVenatasydesventajasSGBD.pdf
VenatasydesventajasSGBD.pdf
 
Base de datos
Base de datosBase de datos
Base de datos
 
Caracteristicas Microsoft SQL Server
Caracteristicas Microsoft SQL ServerCaracteristicas Microsoft SQL Server
Caracteristicas Microsoft SQL Server
 

Mais de vanessaicm (12)

Sql3
Sql3Sql3
Sql3
 
Sql1
Sql1Sql1
Sql1
 
Sql1 2
Sql1 2Sql1 2
Sql1 2
 
Sql2
Sql2Sql2
Sql2
 
7 ar
7 ar7 ar
7 ar
 
6 n2
6 n26 n2
6 n2
 
5 n
5 n5 n
5 n
 
4 ml
4 ml4 ml
4 ml
 
3 mcr
3 mcr3 mcr
3 mcr
 
2 mc
2 mc2 mc
2 mc
 
8 ar2
8 ar28 ar2
8 ar2
 
1 intro
1 intro1 intro
1 intro
 

Sql4

  • 2. • SQL provee mecanismos de seguridad limitados. • Se confía en el software para implementar un framework de seguridad más robusto. • Los vendedores de Bases de Datos implementan los varios aspectos de seguridad en distintas maneras.
  • 3. Mecanismos de Seguridad Básica • Hay tres niveles de seguridad comunes para todos los RDBMS (Relational DataBase Management Systems): – Autenticación: El usuario se conecta al RDBMS. – Autorización: El usuario obtiene acceso a la base de datos o a los objetos del esquema de la base de datos para realizar ciertas acciones, basados en el set de privilegios asignados al usuario. – Auditar: Para monitorear actividad sospechosa y realizar un análisis. • En lo que difieren es en la manera en que cada uno de estos RDBMS implementan estos niveles.
  • 4. Identificación y autenticación • La primera línea de defensa es la autenticación. • Antes de acceder al RDBMS se debe proveer suficiente información validada ya sea por el RDBMS o por el sistema operativo en el cual esta base de datos se encuentra instalada. • Una vez que la identidad es autenticada, se puede proceder con el intento de acceder a los recursos, objetos y datos de la base de datos.
  • 5. Autorización y Control de acceso • Una vez que el usuario es autenticado y se le concede acceso a la base de datos, el RDBMS emplea un complejo sistema de privilegios (permisos) para objetos particulares de la base de datos. • Estos privilegios incluyen permisos para acceder, modificar, destruir o ejecutar objetos relevantes de la base de datos, así como añadir, modificar y borrar datos.
  • 6. Encriptación • Provee una capa adicional de seguridad, protegiendo los datos de personas no autorizadas. • Aún si se obtiene acceso a la base de datos, no será fácil descifrar datos encriptados.
  • 7. Integridad y Consistencia • Mientras la seguridad se basa en la autenticación y autorización de procedimientos, la integridad de los datos juega el rol de proteger los datos de manipulación no intencional o maliciosa. • Por ejemplo, aun si un usuario obtiene acceso a la base de datos (robando la clave), aun debe seguir reglas relacionales para manipular datos.
  • 8. • Entre estas reglas, la que no se permite registros huérfanos. Es decir no se puede borrar registros de una tabla de un padre sin entender las relaciones de la base de datos. • Aunque algunos RDBMS implementan la característica ¨CASCADE¨, que remueve registros hijos cuando se borrar el del padre. • Otra regla es la de no insertar un registro duplicado en una columna protegida con un UNIQUE constraint. • Otra regla, la de no ingresar datos inválidos que violen un CHECK constraint.
  • 9. Auditar • Provee medios para monitorear actividad de base de datos, ambas legítima y no autorizadas. • Preserva la bitácora de intentos de acceso a la base de datos, ya sean exitosos o fallidos. • Tambien los intentos de delete e inserts. • Es un componente necesario para ser considerado para una certificación de seguridad.
  • 10. Definiendo un usuario • SQL99 no especifica alguna sintaxis especial o alguna forma de crear un usuario en la base de datos. • Los vendedores de bases de datos han creado algunas soluciones ingeniosas para esto. • Oracle hace poca distinción entre un usuario y el esquema de la base de datos, DB2 UDB usa solo usuario definidos por el sistema operativo y Microsoft SQL Server combina ambos mecanismos, usando cuentas de Windows y procedimientos especiales del sistema para añadir usuarios a la base de datos.
  • 11. Database User • Es alguien que hace uso de los servicios que el servidor del RDBMS provee. Puede ser una aplicación, un administrador, o cualquiera que acceda a la base de datos en algún momento. • Esta es la primera línea de defensa cuando hablamos de los aspectos de seguridad.
  • 12. Crear un usuario en MySQL • CREATE USER user [IDENTIFIED BY [PASSWORD] 'password’] [, user [IDENTIFIED BY [PASSWORD] 'password']] • Para crear un usuario se necesita como mínimo un nombre de usuario y una contraseña, el resto es opcional. • CREATE USER alumno IDENTIFIED BY ‘clavealumno’;
  • 13. En oracle • Para crear un usuario identificado por el sistema operativo se usa EXTERNALLY. • Si usamos PASSWORD EXPIRE, le estamos diciendo a Oracle que la contraseña para este usuario expira inmediatamente, forzando al usuario a seleccionar una contraseña diferente en la próxima conexión a la base de datos. • ACCOUNT LOCK especifica por ejemplo que el acceso se bloquee después de muchos intentos fallidos o deshabilite la cuenta de un usuario cuando el empleado abandone la compañía.
  • 14. En oracle • Cuando un usuario es creado, un esquema correspondiente a ese usuario es creado también. • El nuevo usuario no tiene derechos o privilegios en el RDBMA, pero se le debe conceder el privilegio de CONNECT a la base de datos Oracle.
  • 15. Borrar un usuario en MySQL • DROP USER <user name>; • En MySQL el usuario está separado de la base de datos
  • 16. Borrar un usuario en Oracle • DROP USER <user name> [CASCADE]; • CASCADE especifica que todos los objetos en el esquema del usuario deben borrarse antes de borrar al usuario. • Oracle no permite borrar un usuario cuyo esquema contiene algún objeto, a menos que se especifique esta cláusula. • DROP USER <user name> [CASCADE]; • DROP USER alumno CASCADE;
  • 17. ALTER USER • Provee una manera conveniente de modificar las propiedades del usuario sin la necesidad de hacerle DROP al usuario y luego recrearlo desde el principio. ALTER USER user_specification [, user_specification] ... user_specification: user PASSWORD EXPIRE
  • 18. Crear una base de datos • Oracle 10gExpress Edition trae creada por defecto una base de datos llamada XE en la cual se puede crear usuarios y trabajar directamente con ella. • Aunque una sola base de datos XE puede correr en una computadora, lo importante es que no se necesita una base de datos para cada aplicación que se cree. Oracle usa el concepto de esquemas para separar aplicaciones. CREATE DATABASE nuevabd; CREATE DATABASE ha fallado base de datos ya montada
  • 19. Connect • La sintaxis del comando es la siguiente: conn[ect] <username>/<password>[@<database_sid>] connect alumno/clavealumno@XE; conn alumno/clavealumno; connect alumno; (pide la clave)
  • 20. DISCONNECT • Se puede desconectar de Oracle pero seguir en el SQL*Plus”: DISC[ONNECT]
  • 21. Administrando la seguridad con Privilegios • Un RDBMS es una colección de objetos, esquemas, tablas, vistas, procedimien tos, etc. Así como los procesos que administran estos objetos. • Restringir el acceso a estos objetos es un mecanismo de seguridad esencial implementado en el nivel de SQL a través del sistema de privilegios.
  • 22. Privilegios • Representan el derecho de un usuario en particular para acceder, crear, manipular y destruir varios objetos dentro de una base de datos, así como realizar tareas administrativas. • Se los puede conceder a un usuario o ROLE. • Se los puede dividir en dos categorías: – Privilegios de Sistema – Privilegios de Objetos
  • 23. Privilegios a nivel de Sistema • Permite a los usuarios realizar tareas administrativas en un RDBMS • Crear una base de datos • Crear y Borrar Usuario • Crear, alterar y destruir objetos de bases de datos, etc • Se necesita un alto nivel de autoridad en el RDBMS para conceder o tener privilegios de sistema
  • 24. Privilegios a nivel de Objeto • Estos privilegios pueden llegar hasta el nivel de columna (si el objeto de la base de datos es una tabla o vista), o a cualquier otro objeto en la base de datos como stored procedures, funciones y triggers.
  • 25. GRANT en MySQL CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost’ WITH GRANT OPTION; CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%’ WITH GRANT OPTION; CREATE USER 'admin'@'localhost'; GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost'; CREATE USER 'dummy'@'localhost';
  • 26. GRANT en Oracle • Para ¨Conceder¨ privilegios: GRANT [ALL [PRIVILEGES]] | <privilege,...> [ON <object_name>] TO <user> | <group> | <role> [WITH GRANT OPTION] Opción Descripción Aplica a ADMIN OPTION Permite al usuario GRANT privilegios del sistema a otros usuario o roles Oracle 9i GRANT OPTION Permite al usuario GRANT privilegios de objetos a otros usuario o roles Oracle 9i, Microsoft SQL Server 2000, IBM DB2 UDB 8.1 SQL92/99 Standard HIERARCHY OPTION Indica que el privilegio de objeto es concedido no solo para el objeto sino para todos los objetos derivados. Oracle 9i
  • 27. • GRANT ALL [PRIVILEGES] | <system privilege,...> | <role> TO <user> | <role> | <PUBLIC> [IDENTIFIED BY <password>] [WITH ADMIN OPTION]; • GRANT ALL PRIVILEGES TO alumno IDENTIFIED BY clavealumno WITH ADMIN OPTION;
  • 28. Privilegios del Sistema en Oracle • ALTER SYSTEM • AUDIT SYSTEM • CREATE [PUBLIC] DATABASE LINK • DROP [PUBLIC] DATABASE LINK • CREATE ANY INDEX • ALTER ANY INDEX • DROP ANY INDEX • CREATE [ANY] MATERIALIZED VIEW • ALTER ANY MATERIALIZED VIEW • DROP ANY MATERIALIZED VIEW • CREATE [ANY] OPERATOR • DROP ANY OPERATOR • EXECUTE ANY OPERATOR • CREATE [ANY] PROCEDURE • DROP ANY PROCEDURE • EXECUTE ANY PROCEDURE • CREATE PROFILE • ALTER PROFILE • DROP PROFILE • CREATE ROLE • ALTER ANY ROLE • DROP ANY ROLE • GRANT ANY ROLE • CREATE [ANY] SEQUENCE • ALTER ANY SEQUENCE • DROP ANY SEQUENCE • SELECT ANY SEQUENCE • CREATE SESSION • ALTER SESSION Para verlos todos en Oracle: select * from DBA_SYS_PRIVS;
  • 29. Privilegios del Sistema en Oracle • CREATE [ANY | PUBLIC ] SYNONYM • DROP [ANY | PUBLIC ] SYNONYM • CREATE [ANY] TABLE • ALTER ANY TABLE • DELETE ANY TABLE • DROP ANY TABLE • INSERT ANY TABLE • LOCK ANY TABLE • SELECT ANY TABLE • UPDATE ANY TABLE • CREATE TABLESPACE • ALTER TABLESPACE • DROP TABLESPACE • ALTER ANY TRIGGER • DROP ANY TRIGGER • CREATE [ANY] TYPE • ALTER ANY TYPE • DROP ANY TYPE • EXECUTE ANY TYPE • UNDER ANY TYPE • CREATE USER • ALTER USER • BECOME USER • DROP USER • CREATE [ANY] VIEW • DROP ANY VIEW • UNDER ANY VIEW • COMMENT ANY TABLE • GRANT ANY PRIVILEGE • SELECT ANY DICTIONARY Para verlos todos en Oracle: select * from DBA_SYS_PRIVS;
  • 30. Privilegios de Objetos En Oracle • INSERT • SELECT • UPDATE • DELETE • ALTER • INDEX • UNDER • EXECUTE • REFERENCES
  • 33. En MySQL • GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost'; • GRANT CREATE ROUTINE ON mydb.* TO 'someuser'@'somehost'; • GRANT EXECUTE ON PROCEDURE mydb.myproc TO 'someuser'@'somehost';
  • 34. En Oracle GRANT CREATE TABLE TO alumno IDENTIFIED BY clavealumno WITH ADMIN OPTION; • Si tiene los privilegios suficientes el usuario alumno con la contraseña clavealumno se creará. Pero no se puede usar este usuario y contraseña para conectarse a la base de datos si al usuario alumno no se le ha concedido el privilegio de sistema CREATE SESSION. • El error que se muestra es: user ALUMNO lacks CREATE SESSION privilege; logon denied • Para corregirlo: GRANT CREATE SESSION TO alumno IDENTIFIED BY clavealumno WITH ADMIN OPTION;
  • 35. REVOKE en Oracle • Revoca los privilegios, a nivel de sistema u objeto, de un usuario, rol o grupo. REVOKE [GRANT OPTION FOR] ALL [PRIVILEGES] | <privilege>,... FROM USER <user> | GROUP <group> | PUBLIC [CASCADE | RESTRICT] Se puede revocar un privilegio o un GRANT OPTION. Por ejemplo un usuario puede perder su habilidad de conceder privilegios pero sus privilegios no se ven afectados.
  • 36. Revocando Privilegios de Sistema REVOKE ALL [PRIVILEGES] | <role> | <system_privilege>,... FROM <user> | <role> | PUBLIC; REVOKE CREATE TABLE FROM alumno; El efecto de Revoke es inmediato
  • 37. Revocando Privilegios de Objeto REVOKE ALL [PRIVILEGES] | <object_privilege,...> [(<column>)] ON [<schema>].<object>] FROM <user> | <role> | PUBLIC CASCADE CONSTRAINTS [FORCE]; REVOKE INSERT, DELETE, UPDATE (pago_empleado, pago_empleado2) ON EMPLEADO FROM PUBLIC; Todos los objetos dependientes como vistas creadas por el usuario que perdió el privilegio se vuelven inválidas.
  • 38. REVOKE en MYSQL • REVOKE • priv_type [(column_list)] • [, priv_type [(column_list)]] ... • ON [object_type] priv_level • FROM user [, user] ... • REVOKE ALL PRIVILEGES, GRANT OPTION • FROM user [, user] ... • REVOKE PROXY ON user • FROM user [, user] ...
  • 39. • REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost'; • REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...