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;