miércoles, 14 de octubre de 2015
jueves, 1 de octubre de 2015
Roles y Usuarios
USUARIOS
CREACIÓN DE USUARIOS EN POSTGRESQL
CREATE USER name [ [ WITH ] option
[ ... ] ]
Donde las opciones pueden ser
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CREATEUSER | NOCREATEUSER
| LOGIN | NOLOGIN
| VALID UNTIL 'timestamp'
| CONNECTION LIMIT connlimit
|
[ENCRYPTED | UNENCRYPTED] PASSWORD 'password'
MODIFICACIÓN DE USUARIOS
ALTER
USER name
Donde las opciones pueden ser
| CREATEDB | NOCREATEDB
| LOGIN | NOLOGIN
| CREATEUSER |
NOCREATEUSER
| PASSWORD 'password'
| VALID UNTIL 'timestamp'
| CONNECTION LIMIT connlimit
EJEMPLO
ALTER USER motores PASSWORD ‘motores’ CREATEDB
CREATEUSER;
ALTER USER motores VALID UNTIL ‘2014-12-31 23:59:59’;
CAMBIAR EL NOMBRE A UN USUARIO
ALTER USER NOMBRE_ANTERIOR RENAME TO
NUEVO_NOMBRE
BORRAR USUARIOS
DROP USER Nombre del usuario a eliminar [CASCADE];
PRIVILEGIOS
Son los permisos que tiene
un usuario o un grupo de usuarios para realizar operaciones específicas en las
bases de datos. Estos privilegios se clasifican en privilegios del sistema (sirven
para realizar operaciones que afectan a todo el sistema) y privilegios de
objeto (sirven para realizar operaciones sobre los objetos de la base de datos
como son tablas, vistas, entre otros).
DAR
PRIVILEGIOS (GRANT)…SINTAXIS
GRANT { { SELECT | INSERT | UPDATE
| DELETE | TRIGGER }
[, ...] | ALL [ PRIVILEGES ] }
ON [ TABLE ] tablename [, ...]
TO { username | PUBLIC } [ WITH GRANT OPTION ]
GRANT { CREATE | CONNECT ALL
[ PRIVILEGES ] }
ON DATABASE dbname
TO {username | PUBLIC } [ WITH
GRANT OPTION ]
EJEMPLO
GRANT SELECT, INSERT, UPDATE ON bancos,
sucursales TO nombre_usuario;
GRANT CONNECT ON DATABASE operaciones TO nombre_usuario;
QUITAR PRIVILEGIOS DE ACCESO (REKOVE)…SINTAXIS
REVOKE [ GRANT]
{ { SELECT | INSERT | UPDATE |
DELETE | TRUNCATE | TRIGGER }
[, ...] | ALL [ PRIVILEGES ] }
ON { [ TABLE ] table_name [,
...]
| ALL TABLES IN SCHEMA
schema_name [, ...] }
FROM { [role_name | PUBLIC }
[, ...]
REVOKE [ GRANT OPTION FOR ]
{ { CREATE | CONNECT } [, ...]
| ALL [ PRIVILEGES ] }
ON DATABASE database_name [,
...]
FROM {role_name | PUBLIC } [,
...]
EJEMPLO
REVOKE ALL ON DATABASE operaciones FROM nombre_rol;
REVOKE INSERT ON films FROM nombre_rol;
TABLESPACE
Un tablespace es una unidad lógica de almacenamiento dentro de una base
de datos.
CREACIÓN DE TABLESPACE
CREATE
TABLESPACE nombre_del_tablespace location 'ruta/carpeta';
ROLES
Los roles son grupos de permisos, al dar varios permisos a un rol
permite concederlos a uno o varios usuarios.
CREACIÓN DE ROLES
CREATE ROLE nombre del rol
DAR PRIVILEGIOS A LOS ROLES
GRANT permiso1 [, permiso2,...]
ON
[usuario.]Objeto
TO nombre
del rol
DAR UN ROL A USUARIO
GRANT nombre del rol TO nombre
del usuario1, nombre del usuario2, ……., nombre del usuarioN;
Esquemas
--CREANDO USUARIOS Y DARLE PRIVILEGIOS..
create user motores98 password 'motores98' createdb;
--CREAR BASE DE DATOS
create database flamingo;
--PARA ENTRAR BASE DE DATOS
\c flamingo ---(FLAMINGO ES EL NOMBRE DE LA BASE DE DATOS)
--PARA CONSULTAR EN QUE BD ESTOY
select current_user;
--PARA CREAR ESQUEMA
create schema esq2;
--PARA CREAR UNA TABLA EN EL ESQUEMA
Ponemos create tabla nombreesquema.nombretabla
--CUANDO SE INSERTA DATOS EN BD ESQUEMAS
insert into esquema.empresa values (1,'calefacciones','A');
--PARA CONSULTAR TABLAS EN ESQUEMAS
select * from esquema.empresa;
--PARA VER LOS ESQUEMAS CREADOS
\dn
--COMO HACER UN JOIN
from nombreesquema.nombretabla1,nombreesquema.nombretabla2
where nombreesquema.nombretabla1.nombrecampo=nombreesquema.nombretabla2.nombrecampo;
--COMO CAMBIAR UNA TABLA DE UN ESQUEMA A OTRO
alter table esquema1.empresa set schema esquema2;
alter table nombreesquema.nombretabla
set schema nombreesquemadondequierapasalatabla;
--ELIMINAR ESQUEMAS
drop schema nombreesquema;
--PARA ELIMINAR ESQUEMAS QUE TENGA TABLAS
drop schema esq3 cascade;