Acabo de instalar oracle11g y le faltaba el esquema de Scott. Entonces estoy tratando de generarlo yo mismo. Obtuve el script sql del esquema "Scott", pero cuando trato de ejecutar la consulta "crear usuario Scott identificado por tiger;" muestra el siguiente error:
ORA-65096: nombre de rol o usuario común no válido en Oracle.
Básicamente, no me permite crear un usuario "Scott". ¿Por qué es así y cómo puedo solucionar mi problema?
11g
, deberías estar encendido12c
.Respuestas:
PELIGRO
La configuración de parámetros no documentados como este (como se indica con el subrayado inicial) solo debe realizarse bajo la dirección del Soporte de Oracle. Cambiar dichos parámetros sin dicha guía puede invalidar su contrato de soporte. Así que haz esto bajo tu propio riesgo.
Específicamente, si establece
"_ORACLE_SCRIPT"=true
, algunos cambios en el diccionario de datos se realizarán con la columna ORACLE_MAINTAINED establecida en 'Y'. Esos usuarios y objetos se excluirán incorrectamente de algunos scripts de DBA. Y pueden estar incluidos incorrectamente en algunos scripts del sistema.Si está de acuerdo con los riesgos anteriores y no desea crear usuarios comunes de la manera correcta, utilice la respuesta a continuación.
Antes de crear el usuario, ejecute:
Encontré la respuesta aquí
fuente
No, ha instalado Oracle 12c . Ese error solo puede estar activado
12c
y no puede estar activado11g
.Siempre verifique la versión de su base de datos hasta 4 lugares decimales:
La base de datos de contenedores multiusuario Oracle 12c tiene:
Debe haber creado la base de datos como una base de datos de contenedor . Mientras, está intentando crear un usuario en el contenedor, es decir, CDB $ ROOT , sin embargo, debe crear el usuario en la base de datos PLUGGABLE .
No se supone que debe crear objetos relacionados con la aplicación en el contenedor, el contenedor contiene los metadatos para las bases de datos conectables. Debe utilizar la base de datos conectable para sus operaciones generales de base de datos. De lo contrario, no lo cree como contenedor y no utilice la tenencia múltiple . Sin embargo, desde 12cR2 en adelante, no puede crear una base de datos sin contenedor de todos modos.
Y lo más probable es que los esquemas de muestra ya estén instalados, solo necesita desbloquearlos en la base de datos conectable.
Por ejemplo, si creó una base de datos conectable como
pdborcl
:Para mostrar los PDB y conectarse a una base de datos conectable desde el contenedor raíz:
Sugiero leer, Pasos obligatorios posteriores a la instalación de Oracle 12c
Nota : Las respuestas que sugieren usar el
_ORACLE_SCRIPT
parámetro oculto para establecerlo en verdadero son peligrosas en un sistema de producción y también pueden invalidar su contrato de soporte. Tenga cuidado, sin consultar al soporte de Oracle, NO utilice parámetros ocultos .fuente
En Oracle 12c y superior, tenemos dos tipos de bases de datos:
Si quieres crear un usuario, tienes dos posibilidades:
Puede crear un "usuario contenedor" también conocido como "usuario común".
Los consumidores habituales pertenecen tanto a los CBD como a los PDB actuales y futuros. Significa que pueden realizar operaciones en bases de datos de contenedor o bases de datos conectables según los privilegios asignados.
create user c##username identified by password;
Puede crear un "usuario conectable" también conocido como "usuario local".
Los usuarios locales pertenecen solo a un único PDB. A estos usuarios se les pueden otorgar privilegios administrativos, pero solo para ese PDB dentro del cual existen. Para eso, debes conectarte a un datable conectable así:
alter session set container = nameofyourpluggabledatabase;
y allí, puedes crear un usuario como normalmente:
create user username identified by password;
No olvide especificar los espacios de tabla a utilizar, puede ser útil durante la importación / exportación de sus bases de datos. Consulte esto para obtener más información al respecto https://docs.oracle.com/database/121/SQLRF/statements_8003.htm#SQLRF01503
fuente
modificar el conjunto de sesiones "_ORACLE_SCRIPT" = verdadero;
crear usuario sec_admin identificado por "Chutinhbk123 @!";
fuente
Crear dependencia del usuario sobre las herramientas de conexión de la base de datos
fuente
Podría ser, una alternativa más segura
"_ORACLE_SCRIPT"=true
es cambiar"_common_user_prefix"
deC##
una cadena vacía. Cuando es nulo, cualquier nombre puede usarse para un usuario común. Encontrado allí .Al cambiar ese valor, es posible que se enfrente a otro problema, ORA-02095, el parámetro no se puede modificar, que se puede solucionar de varias maneras, según su configuración ( fuente ).
Así que para mí funcionó eso:
fuente