Pregunta

Estoy utilizando Oracle SQL Developer

Tengo un script que crea enormes tablas, índices, restricciones de clave principal y tal.

mi nombre es DB: dbo_other

Me he registrado en este dbo_other como sysdba.

Si funciono mi guión a continuación las tablas no se muestran en el panel izquierdo bajo '' sitios

Sin embargo, si añado el guión añadiendo 'dbo_other.' delante de cada nombre de la tabla a continuación, las tablas se presentan.

Esto es muy tedioso y lento.

¿Hay una manera de evitar esto? por eso planteo que aparecen en dbo_other sin añadir dbo_other. delante de cada nombre de la tabla ?? Cuando ejecuto la consulta en la esquina superior derecha del menú desplegable ha seleccionado dbo_other !!

Incluso puede hacer un selecto * de la tabla creada (pero no lo ve en la barra lateral izquierda) Por otra parte, puedo ver la tabla de pl / SQL Developer.

¿Por qué Oracle SQL Developer quiere que crearlo con dbo_other. ??

Además, hay una manera para evitar añadir que para cada tabla? tal vez algo se puede hacer en la parte superior de la secuencia de comandos para que surtan efecto en todo lo que sigue?

¿Fue útil?

Solución

¿Por qué estás accediendo a su base de datos utilizando la cuenta de SYSDBA? Esto es muy poderosa, y le permitirá hacer un daño terrible a su base de datos, si usted no sabe lo que está haciendo. En un entorno de desarrollo que hay un límite al daño que puede hacer, pero lo mejor es entrar en los buenos hábitos antes de hacer las cosas en la producción.

Lo interesante de AS SYSDBA es que anula la parte del nombre de usuario de inicio de sesión:. Si el usuario del sistema operativo tiene los privilegios, estás de Como SYS. Compruébelo usted mismo:

SQL> conn apc
Enter password:
Connected.
SQL> show user
USER is "APC"
SQL> conn apc as sysdba
Enter password:
Connected.
SQL> show user
USER is "SYS"
SQL>

Por lo tanto, cuando se ejecutó el guión que ha creado todos esos objetos en el esquema SYS. Que resultará ser un dolor enorme en el cuello. Espero que tenga una secuencia de comandos de reversión igual y opuesta.

Para ejecutar la secuencia de comandos correctamente, todo lo que tiene que hacer es conectar como DBO_OTHER (normal - es decir, sin SYSDBA o SYSOPER que es el valor por defecto después de todo). La secuencia de comandos creará tablas en el esquema actual.

Si necesita crear objetos en varios esquemas, que no es necesario cerrar la sesión y de nuevo. El esquema es distinto del usuario y es posible cambiar el esquema ejecutando alter session set current schema = WHOEVR;. Este es un truco muy útil y me escribió en su blog que hasta hace algún tiempo. Descubre más .

Tenga en cuenta que el usuario no adquirirá ningún privilegio adicional, cambiando el esquema actual: que sólo será capaz de hacer lo que actualmente pueden hacer. Así que para algo así como la creación de objetos en varios esquemas que el usuario de ejecución debe ser un usuario avanzado, alguien con crear cualquier privilegios tales como DBA (pero aún no SYSDBA).

Otros consejos

Me tropecé con esta pequeña joya que le permite realizar acciones en un esquema / usuario por defecto para el que no se ha identificado como. Es decir, por defecto sus instrucciones select, etc operarán con este nuevo esquema en lugar de su cuenta.

alterar conjunto sesión CURRENT_SCHEMA =

Ejemplo: Yo mismo + tabla1 + tabla2 Alguien más + SuperTable1 + SuperTable2

log in as "Myself" 
select * from SuperTable1

Error: ORA-00942: table or view does not exist

alter session set current_schema = SomeoneElse 
select * from SuperTable1 <This will work.>

El árbol "Tablas" en el panel de la izquierda sólo se incluye tablas del usuario conectado posee en Oracle SQL Developer. Si el script crea tablas en el esquema de otro usuario, debe hacer clic en el signo + junto a "otros usuarios", encontrar el usuario apropiado y haga clic en el signo + en sus mesas.

Como otros han dicho, no se debe utilizar SYSDBA a menos que necesite, y suena muy parecido a la secuencia de comandos debe ejecutarse como un usuario normal basado en su descripción aproximada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top