Oracle Database 12c: Usuarios, Roles y Privilegios Deiby Gómez Oracle Linux Certified Implementation Specialist. Oracle Database 11g Administrator Certified Professional. Oracle Database 12c Administrator Certified Professional. Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert. Oracle Exadata Database Machine X3 Administrator Oracle RAC 11g and Grid Infrastructure Administrator @hdeiby www.oraclefromguatemala.com.gt Arquitectura de Oracle Database 12c Container Database (CDB) Pluggable Database (PDB) Arquitectura de Oracle Database 12c Arquitectura de Oracle Database 12c ¿En dónde se crean los usuarios? ¿En dónde se crean los privilegios? ¿En dónde se crean los roles? Una vez creados, ¿Cómo funcionan? Arquitectura de Oracle Database 12c Metadatos de Oracle… … mezclados con los metadatos del usuario. Arquitectura de Oracle Database 12c Cada PDB tiene su propio diccionario de Datos Arquitectura de Oracle Database 12c CDB y PDB Común y Local Oracle Database 12c: Común y Local Común Usuarios Comunes Roles Comunes Privilegios asignados comúnmente Local Usuarios Locales Roles Locales Privilegios asignados localmente Nota: Roles comunes pueden contener privilegios locales y comunes Oracle Database 12c: Común y Local Privilegio cedido comúnmente Privilegio cedido localmente Privilegio cedido localmente Oracle Database 12c: Común y Local Oracle Database 12c: Común y Local Usuarios Comunes Roles Comunes C##<nombre> c##<nombre> CONTAINER=ALL Común Privilegios asignados comúnmente _common_user_prefix Local CONTAINER=ALL http://www.oraclefromguatemala.com.gt/?p=388 Usuarios Locales Roles Locales Privilegios asignados comúnmente CONTAINER=CURRENT Oracle Database 12c: Común y Local Usuario y Roles COMMON | LOCAL PDB | CDB$ROOT CONTAINER=ALL | CURRENT | NULL Oracle Database 12c: Común y Local Creación y Eliminación de Usuarios y Roles Toda operación de tipo común debe realizarse en el CDB$ROOT, utilizando la cláusula CONTAINER=ALL y con un usuario Común Toda operación de tipo local debe realizarse en la PDB y utilizando la cláusula CONTAINER=CURRENT Sin clausula CONTAINER Si la operación se realiza en: • PDB: será operación LOCAL • CDB$ROOT: será operación COMUN Bug Drop User - 1619287.1 http://www.oraclefromguatemala.com.gt/?p=384 Oracle Database 12c: Común y Local Escenarios - Creación y Eliminación de Usuarios Bug Drop User - 1619287.1 http://www.oraclefromguatemala.com.gt/?p=384 Arquitectura de Oracle Database 12c Manejo de Privilegios Toda operación de tipo común debe realizarse en el CDB$ROOT, utilizando la cláusula CONTAINER=ALL y con un usuario común Toda operación de tipo local debe realizarse en la PDB y utilizando la cláusula CONTAINER=CURRENT Sin clausula CONTAINER Si la operación se realiza en: • PDB: será operación LOCAL • CDB$ROOT: será operación LOCAL Oracle Database 12c: Común y Local Usuario y Role COMMON | LOCAL PDB | CDB$ROOT CONTAINER=ALL | CURRENT | NULL http://www.youtube.com/watch?v=rm6GjQZZQKs Oracle Database 12c: Común y Local Usuario y Role COMMON | LOCAL PDB | CDB$ROOT CONTAINER=ALL | CURRENT | NULL http://www.youtube.com/watch?v=8GPIFucptAc Oracle Database 12c: Común y Local Privilegio cedido con COMMON | LOCAL PDB | CDB$ROOT CONTAINER=ALL | CURRENT | NULL http://www.youtube.com/watch?v=C5RFy7NAeEs Conclusiones Con usuarios y Roles: La clausula CONTAINER es opcional, domina el contenedor donde se realice la operación. Operaciones en una PDB son realizadas como normalmente se hacían en <12 ¿Es una operación común? Si ->CDB$ROOT No->PDB Trabajando usuarios/roles el contenedor tiene mucha importancia y la clausula CONTAINER no. Trabajando con privilegios, la clausula CONTAINER tiene mucha importancia. Deiby Gómez @hdeiby www.oraclefromguatemala.com.gt