- Este tópico contém 9 respostas, 2 vozes e foi atualizado pela última vez 18 anos, 3 meses atrás por rferreira.
-
AutorPosts
-
20 de setembro de 2006 às 6:58 pm #76547rferreiraParticipante
Pesosal, tudo bem?
Preciso montar uns relatórios sobre as tabelas do Oracle e durante os meus estudos eu encontrei algumas dúvidas a respeito das consultas em DBA_OBJECT_TABLES ou DBA_OBJECTS, pois o numero de registros em que o OBJECT_TYPE=TABLE em DBA_OBJECTS é de 1123, que é infinitamente maior doque todos os registros de DBA_OBJECT_TABLES que somam 35. Porém esse sistema é uma instalação padrão para esses testes e não tem nenhuma tabela de usuário criada, o que me levou a crer que os dados mais objetivos estavam em DBA_OBJECT_TABLES.
Um outro DBA que eu conversei disse para usar a DBA_OBJECTS mesmo, porém se eu fizer um relatório que terá várias páginas com dados que não são úteis, porque não se referem a tabelas que o usuário do banco manipula, ele ficará meio difícil de usar.
De onde será que vem essas 1123 tabelas de DBA_OBJECTS?? Será que o usuário do banco precisa mesmo de um grande relatório com todas elas??
Se alguem puder me ajudar eu agradeço…
Renato A. Ferreira 🙂 🙂 🙂 🙂 🙂
21 de setembro de 2006 às 3:42 pm #76553Marcio68AlmeidaParticipanteBom dia.
Certamente o teu usuário não necessita de tantta informação, principalmente por se tratarem de tabelas de sistema e a grande maioria não erá acesso a elas 🙂
Você pode usar tanto o DBA_TABLES quanto o DBA_OBJECTS, só que use a restrição por OWNER, mostre ao usuário apenas o que lhe diz respeito.
Você também pode criar VIEWS para facilitar o teu trabalho.25 de setembro de 2006 às 9:22 pm #76634rferreiraParticipante[quote=”Marcio68Almeida”:36iewx7c]Bom dia.
Certamente o teu usuário não necessita de tantta informação, principalmente por se tratarem de tabelas de sistema e a grande maioria não erá acesso a elas 🙂
Você pode usar tanto o DBA_TABLES quanto o DBA_OBJECTS, só que use a restrição por OWNER, mostre ao usuário apenas o que lhe diz respeito.
Você também pode criar VIEWS para facilitar o teu trabalho.[/quote]Na verdade o sistema precisa inventariar o ambiente como um todo e não só as tabelas do esquema do usuário logado. O objetivo é montar uma árvore de esquemas e seus respectivos objetos. Será que essas tabelas de sistema que eu posso ignorar tem algum parâmetro ou fazem parte de algum esquema que eu posso usar como referência para ignorar?
26 de setembro de 2006 às 5:13 pm #76645Marcio68AlmeidaParticipante[quote=”rferreira”:36911sy8]Será que essas tabelas de sistema que eu posso ignorar tem algum parâmetro ou fazem parte de algum esquema que eu posso usar como referência para ignorar?[/quote]
Bom, esta tua frase ficou um pouco confusa… 😳
Acho que você quer saber se há algum mode de filtrar tudo o que não seja seus aplicativos… Se for isso, você teria que colocar uma cláusula where com owner not in (‘SYS’, ‘SYSTEM’, ‘PUBLIC’, etc)26 de setembro de 2006 às 7:24 pm #76648rferreiraParticipante[quote=”Marcio68Almeida”:1p052g6n][quote=”rferreira”:1p052g6n]Será que essas tabelas de sistema que eu posso ignorar tem algum parâmetro ou fazem parte de algum esquema que eu posso usar como referência para ignorar?[/quote]
Bom, esta tua frase ficou um pouco confusa… 😳
Acho que você quer saber se há algum mode de filtrar tudo o que não seja seus aplicativos… Se for isso, você teria que colocar uma cláusula where com owner not in (‘SYS’, ‘SYSTEM’, ‘PUBLIC’, etc)[/quote]o que eu quiz dizer era se existe algum parametro que eu possa usar no WHERE para ignorar os dados que não são “relevantes” como, por exemplo, o exemplo que voce deu de ignorar pelos donos dos esquemas…. mas será que os usuarios SYS, SYSTEM e PUBLIC excluem precisamente esses dados que eu não gostaria de mostrar?? não corro o risco de ignorar algo importante ou deixar passar muita coisa inútil??
27 de setembro de 2006 às 5:26 pm #76672Marcio68AlmeidaParticipanteBom, não sei até onde vai a sua auditoria, mas certamente o que está debaixo do SYS, SYSTEM e PUBLIC, entre outros, não são dados para auditoria, são dados para administadores.
Há outros usuários como XDB, WKPROXY, WKSYS, etc que também possuem dados que não são relevantes para uma auditoria.
Agora… Saber quais os usuários de systema, depende da sua instalação, não sei te dizer quais são todos… Faça o seguinte :
Select owner, count(*) from dba_objects group by owner order by owner;
Tudo o que não for seus aplicativos coloque no WHERE…28 de setembro de 2006 às 2:56 am #76679rferreiraParticipanteEu executei a sua query e só adcionei um WHERE para selecionar os OBJECT_TYPE=TABLE e retornou os seguintes valores:
CTXSYS: 37
DBSNMP: 21
FLOWS_FILES: 1
FLOWS_020100: 164
HR: 7
MDSYS: 37
OUTLN: 3
SYS: 678
SYSTEM: 138
TSMSYS: 1
XDB: 36Buscando mais na web eu achei a seguinte listagem que estou pensando sériamente em usar: http://www.idevelopment.info/data/Oracl … A_26.shtml
E baseado nisso eu gerei a seguinte lista (java based) de schemas proibidos:
public static final String[] SchemasIgnorados = new String[] {
//default users
"SYS",
"SYSTEM",
"DBSNMP",
"OUTLN",
"MDSYS",
"ORDSYS",
"ORDPLUGINS",
"CTXSYS",
"DSSYS",
"PERFSTAT",
"WKPROXY",
"WKSYS",
"WMSYS",
"XDB",
"ANONYMOUS",
"ODM",
"ODM_MTR",
"OLAPSYS",
"TRACESVR",
"REPADMIN",//jserv accounts
"AURORA$ORB$UNAUTHENTICATED",
"AURORA$JIS$UTILITY$",
"OSE$HTTP$ADMIN",//well known referenced sample accounts
"SCOTT",
"ADAMS",
"JONES",
"CLARK",
"BLAKE",//oracle9i sample schemas
"HR",
"OE",
"PM",
"SH",
"QS",
"QS_ES",
"QS_WS",
"QS_OS",
"QS_CB",
"QS_CS",
"QS_ADM",
"QS_CBADM"
}Devo dar andamento no serviço baseado nessa lista que poderei editar futuramente, mas de olhometro da pra tirar algum furo dessa lista? Como por exemplo os schemas FLOWS_FILES ou FLOWS_020100 que não apareceram nessa lista??
28 de setembro de 2006 às 3:06 pm #76684Marcio68AlmeidaParticipanteEu desconheço os esquemas FLOWS_020100 tem jeito de ser de suas aplicações…
Nos demais, pode coloca-los como filtro sim.28 de setembro de 2006 às 11:01 pm #76688rferreiraParticipante[quote=”Marcio68Almeida”:qlwtown2]Eu desconheço os esquemas FLOWS_020100 tem jeito de ser de suas aplicações…
Nos demais, pode coloca-los como filtro sim.[/quote]pior que não criamos nada meu, a instalação está padrãozona…. 🙄 🙄 🙄 🙄 🙄
agora, depois de pensar um pouco, resolvi so ignorar o primeiro grupo de usuarios… os demais, de exemplos e talz, é melhor aparecer pro administrador poder excluir se for o caso….
30 de setembro de 2006 às 2:25 am #76705rferreiraParticipanteEsse documento é interessante falando, do ponto de vista da segurança, sobre as contas padrão em todas as versões: http://www.ecuoug.org/?p=22
-
AutorPosts
- Você deve fazer login para responder a este tópico.