Checklist de informacion sobre usuarios en 12c con CDB/PDB

En esta entrada seguiremos con las cheklist de cosas a tener en cuenta en la nueva version 12c, en este caso trataremos la informacion sobre usuarios

Tenemos dos tipos de usuario.

  • Commonuser: Tendrá la misma identidad en el root y en los PDB donde se le den permisos
  • Local user: Solamente exisistirá en el PDB donde se declare.

Common users

  • Para crearlo has de estar logado al CDB$ROOT
  • El nombre debe de comenzar por c## o C## y contener solo caracteres ASCII o EBCDIC
  • Para indicar explícitamente que el usuario va a estar en todos los contenedores hay que poner la cápsula CONTAINER=ALL
  • Si te encuentras en el root y no indicas la cláusula CONTAINER se presupone que es ALL
  • Los usuarios common users no pueden tener objetos creados en sus esquemas
  • Para podrán navegar entre los contenedores en los que tengan los permisos SET CONTAINER y CREATE SESSION
  • Para poder crear mas usuarios comunes debe de tener los privilegios SET CONTAINER y CREATE USER
  • Un usuario comun puede hacer:

    Grant privileges a common users o common roles

  • Run anALTER DATABASE statement que especifiquen clausulas de recuperacion que afectan a todo el CDB

    Usuarios locales

  • No puedes tener usuarios locales llamados SYS o SYSTEM
  • No puedes definir usuarios locales el el ROOT$CDB
  • Los local users pueden administrar un PDB, incluido arrancarlo y/o abrirlo
  • Están limitados a su PDB, NO pueden hacer SET CONTAINER
  • No pueden comenzar por c## o C##
  • La cláusula CONTAINER=CURRENT debe de especificarse en su creación
  • Para poder crear mas usuarios locales
  • Para crearlo has de estar conectado al PDB donde quieres crearlo
  • Se puede dar privilegios con los comunes y que le den privilegios comunes
  • En la sintaxis SQL de estos usuarios la cláusula CONTAINER indica en que containers aplica el comando

    Privilegios globales y locales

  • Lo privilegios globales una deben de ser otorgados a PUBLIC
  • Un privilegio local solo puede usarse en el container donde ha sido otorgado, incluso si ese container es ROOT
  • Un usuario local solo puede tener privilegios locales, pero uno común puede tener globales y locales.
  • Se dan con GRANT y REVOKE, solo que hay que añadir la clausula del CONTAINER
  • Para poder dar SYSTEM PRIVILEGES has de ter el privilegio SET CONTAINER

    Roles locales y globales

  • Los roles globales se crean en root y existen en los containers presentes y futuros.
  • Los usuarios globales pueden crear roles globales y darlos a otros users globales o locales
  • Los usuarios locales no pueden crear roles globales pero si que pueden darlos a usuarios globales o locales
  • Los usuarios locales puedan grantcommon roles a usuarios globales o locales
  • Al igual que los nombres de usuarios, los nombres de roles globales han de empezar por C##o c##
  • Si creas un role global desde un container has de poner la cláusula CONTAINER=ALL
  • Si otorgas un role global a un user global sin añadir la cláusula CONTAINER se aplica solo al container en el que estás, aunque este sea el CDBROOT
  • Deja una respuesta