Re: [oracle_br] Re: duvida role dba

2012-06-27 Por tôpico Milton Bastos Henriquis Jr.
Paulo

Regra geral de SEGURANÇA: Não dê permissão NENHUMA.
Sempre comece a partir do ZERO.

Infelizmente não é o teu caso, pois o sistema já existe, os usuários já
existem com atribuições
que não deveriam ter. O correto é começar realmente do ZERO e ir dando os
grants somente
do que é realmente necessário.

Como teu caso é mais complicado, pois já está em produção, vc vai ter que
tomar essa decisão:
vai realmente adotar uma política melhor de segurança?
Se a resposta for SIM, vcs terão que fazer esse trabalho conjunto, ou seja,
agendar um horário
para começar essas alterações, deixar avisado que erros provavelmente
ocorrerão, e aí vc terá
que ir acertando os grants até que o sistema funcione normalmente.

Óbvio que vc não precisa começar literalmente do Zero: analise cada um dos
usuários que vc tem
na base, verifique os grants óbvios que o sistema com certeza necessita,
e daí sim crie um ponto
de partida.


Lembrando que vc não precisa colocar a produção em risco: use um ambiente
de testes!





2012/6/27 Paulo Couto paulopcto2...@yahoo.com.br

 **


 Ederson, estou com um problema, tenho um base oracle que comecei a
 gerenciar e percebi vários users com está role, sei que é perigoso, mas
 precisava entender melhor antes de remover.

 Meu receio é remover a role e alguém chiar de problema no sistema.

 Será que se o login já tiver os grants de select, insert, update  OU for o
 owner dos objetos teria algum problema em retirar a role DBA ??

 Att,


 
 De: ederson2001br ederson200...@yahoo.com.br
 Para: oracle_br@yahoogrupos.com.br
 Enviadas: Quarta-feira, 27 de Junho de 2012 9:37
 Assunto: [oracle_br] Re: duvida role dba





 Alô Paulo,

 A role DBA tem diversos direitos no banco, veja os principais (não consigo
 guardar tudo de cabeça):

 -Gerenciar espaço: pode criar tablespaces, bem como removê-las
 -Pode colocar tablespaces em modo apenas-leitura
 -Pode mudar a senha de usuários
 -Pode bloquear usuários
 -Pode criar novos usuários
 -Pode dropar (remover) um usuário com todos os seus dados
 -Pode alterar dados nas tabelas dos usuários
 -Pode manipular objetos dos usuários (criar, remover, alterar)
 -Pode visualizar objetos do dicionário de dados, como as views DBA_%
 -Pode fazer backup
 -Pode restaurar backup
 -Pode conceder privilégios de sistema a outros usuários
 -Pode remover privilégios de usuários
 -Pode criar novos conjuntos de privilégios (create role + grant)
 -Pode remover conjuntos de privilégios (drop role)
 -Pode gerenciar estatísticas
 -Pode gerenciar jobs (tarefas agendadas)
 -etc

 Enfim, pode muito mesmo. Já pensou um usuário curioso com este poder na
 mão? É metralhadora carregada na mão de símios.

 Veja todos os direitos (rodar no SQLPLUS), respondendo DBA à pergunta do
 script, depois compare com os direitos de um usuário comum (ex: SCOTT):

 SET echo OFF
 SET verify OFF
 SET pages 
 column granted_role form a25
 column owner form a15
 column table_name form a33
 column privilege form a33
 ACCEPT username prompt 'Enter Username : '
 PROMPT Roles granted to user
 SELECT granted_role,
 admin_option,
 default_role
 FROM dba_role_privs
 WHERE grantee=UPPER('username')
 ORDER BY 1;
 PROMPT Table Privileges granted to a user through roles
 SELECT granted_role,
 owner,
 table_name,
 privilege
 FROM
 ( SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
 UNION
 SELECT granted_role
 FROM role_role_privs
 WHERE role IN
 (SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
 )
 ) roles,
 dba_tab_privs
 WHERE granted_role=grantee
 ORDER BY 1,2,3,4;
 PROMPT System Privileges assigned to a user through roles
 SELECT granted_role,
 privilege
 FROM
 ( SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
 UNION
 SELECT granted_role
 FROM role_role_privs
 WHERE role IN
 (SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
 )
 ) roles,
 dba_sys_privs
 WHERE granted_role=grantee
 ORDER BY 1,2;
 PROMPT Table privileges assigned directly to a user
 SELECT owner,
 table_name,
 privilege
 FROM dba_tab_privs
 WHERE grantee=UPPER('username')
 ORDER BY 1,2,3;
 PROMPT System privileges assigned directly to a user
 SELECT privilege,
 admin_option
 FROM dba_sys_privs
 WHERE grantee=UPPER('username');
 undefine username;

 Ederson Elias
 DBA Oracle
 http://br.linkedin.com/pub/ederson-elias/24/8b/8b0

 --- Em mailto:oracle_br%40yahoogrupos.com.br, Paulo Couto paulopcto2002@...
 escreveu

 
  Amigos, desculpem a pergunta meio de iniciante, mas até o momento não
 consegui captar o risco e quais permissões um login com a role DBA pode ter
 ? Já pesquisei bastante na net mas nunca acho nada que me diga realmente o
 que está role é e quais os riscos.
 
 
  Gostaria de vossos comentarios ou material sobre estas permissões no
 oracle ( o meu é versão 10 ).
 
 
  Att,
 
 
  [As partes desta mensagem que não continham texto foram removidas]
 

 [As partes desta mensagem que não continham texto foram removidas

Re: [oracle_br] Re: duvida role dba

2012-06-27 Por tôpico Rafael Vieira
Paulo, essa base que você se refere, é de produção ou treinamento?
Pois a maioria das bases de treinamento os usuários tem permissão de DBA, ou 
pelo menos quase isso, se for uma base de produção aí realmente deve ser 
revisto, você deve gerar um relatório com todos os usuários que você acha que 
possuem permissões de risco, e levar para o seu coordenador e também passar um 
e-mail para que qualquer dano futuro isso não vá explodir na sua mão.





 De: Paulo Couto paulopcto2...@yahoo.com.br
Para: oracle_br@yahoogrupos.com.br oracle_br@yahoogrupos.com.br 
Enviadas: Quarta-feira, 27 de Junho de 2012 9:50
Assunto: Re: [oracle_br] Re: duvida role dba
 

  
Ederson, estou com um problema, tenho um base oracle que comecei a gerenciar e 
percebi vários users com está role, sei que é perigoso, mas precisava entender 
melhor antes de remover.
 
Meu receio é remover a role e alguém chiar de problema no sistema.
 
Será que se o login já tiver os grants de select, insert, update  OU for o 
owner dos objetos teria algum problema em retirar a role DBA ??
 
Att,



De: ederson2001br ederson200...@yahoo.com.br
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quarta-feira, 27 de Junho de 2012 9:37
Assunto: [oracle_br] Re: duvida role dba


  

Alô Paulo,

A role DBA tem diversos direitos no banco, veja os principais (não consigo 
guardar tudo de cabeça):

-Gerenciar espaço: pode criar tablespaces, bem como removê-las
-Pode colocar tablespaces em modo apenas-leitura
-Pode mudar a senha de usuários
-Pode bloquear usuários
-Pode criar novos usuários
-Pode dropar (remover) um usuário com todos os seus dados
-Pode alterar dados nas tabelas dos usuários
-Pode manipular objetos dos usuários (criar, remover, alterar)
-Pode visualizar objetos do dicionário de dados, como as views DBA_%
-Pode fazer backup
-Pode restaurar backup
-Pode conceder privilégios de sistema a outros usuários
-Pode remover privilégios de usuários
-Pode criar novos conjuntos de privilégios (create role + grant)
-Pode remover conjuntos de privilégios (drop role)
-Pode gerenciar estatísticas
-Pode gerenciar jobs (tarefas agendadas)
-etc

Enfim, pode muito mesmo. Já pensou um usuário curioso com este poder na mão? 
É metralhadora carregada na mão de símios.

Veja todos os direitos (rodar no SQLPLUS), respondendo DBA à pergunta do 
script, depois compare com os direitos de um usuário comum (ex: SCOTT):

SET echo OFF
SET verify OFF
SET pages 
column granted_role form a25
column owner form a15
column table_name form a33
column privilege form a33
ACCEPT username prompt 'Enter Username : '
PROMPT Roles granted to user
SELECT granted_role,
admin_option,
default_role
FROM dba_role_privs
WHERE grantee=UPPER('username')
ORDER BY 1;
PROMPT Table Privileges granted to a user through roles
SELECT granted_role,
owner,
table_name,
privilege
FROM
( SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
UNION
SELECT granted_role
FROM role_role_privs
WHERE role IN
(SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
)
) roles,
dba_tab_privs
WHERE granted_role=grantee
ORDER BY 1,2,3,4;
PROMPT System Privileges assigned to a user through roles
SELECT granted_role,
privilege
FROM
( SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
UNION
SELECT granted_role
FROM role_role_privs
WHERE role IN
(SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
)
) roles,
dba_sys_privs
WHERE granted_role=grantee
ORDER BY 1,2;
PROMPT Table privileges assigned directly to a user
SELECT owner,
table_name,
privilege
FROM dba_tab_privs
WHERE grantee=UPPER('username')
ORDER BY 1,2,3;
PROMPT System privileges assigned directly to a user
SELECT privilege,
admin_option
FROM dba_sys_privs
WHERE grantee=UPPER('username');
undefine username;

Ederson Elias
DBA Oracle
http://br.linkedin.com/pub/ederson-elias/24/8b/8b0

--- Em mailto:oracle_br%40yahoogrupos.com.br, Paulo Couto paulopcto2002@... 
escreveu

 Amigos, desculpem a pergunta meio de iniciante, mas até o momento não 
 consegui captar o risco e quais permissões um login com a role DBA pode ter ? 
 Já pesquisei bastante na net mas nunca acho nada que me diga realmente o que 
 está role é e quais os riscos.
 
 
 Gostaria de vossos comentarios ou material sobre estas permissões no oracle ( 
 o meu é versão 10 ).
 
 
 Att,
 
 
 [As partes desta mensagem que não continham texto foram removidas]


[As partes desta mensagem que não continham texto foram removidas]


 

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Re: duvida role dba

2012-06-27 Por tôpico Jefferson Clyton
Paulo,

Se puder entrar em contato com o desenvolvedor do sistema será uma ajuda.
Com eles você poderá ter informações mais
precisas e talvez ganhe um tempo.

Jefferson Silva
DBA-Junior

Em 27 de junho de 2012 10:34, ederson2001br
ederson200...@yahoo.com.brescreveu:

 **


 Paulo,

 O Rafael e o Milton já falaram as palavras importantes: segurança e
 autorização.

 Vamos montar um cenário:
 -Usando ambiente de testes, clone da produção. Se não tiver, providencie
 primeiro. Sem testar, vc nunca poderá dar certeza de ambiente estável
 -Geralmente, dar grant de DBA é em sistemas onde o ADMIN foi descuidado em
 não listar os privilégios necessários. Com certeza o sistema acessa views
 do dicionário para ver conexões, talvez até tenha rotina de derrubar
 conexão (isto é atribuição do DBA).
 -Portanto: no ambiente de TESTE, revoke a permissão de DBA e recompile
 triggers, procedures, funções, packages e views.
 -Se ficar algum objeto inválido, confira com a produção. Se lá estiver
 válido, está faltando direitos. Usando o SQLDeveloper ou PL/SQLDeveloper ou
 TOAD (ou semelhante), conecte-se como o owner (que vc removeu o priv DBA)
 abra o objeto e mande compilar, o erro vai indicar qual objeto/direito está
 faltando.
 -Desta forma, crie uma ROLE e vá atribuindo. Depois dê grant desta role
 para o usuário (q não tem mais o priv DBA) e recompile os objetos. Quando
 não tiver mais objs inválidos, significa que vc deu todos os grants
 necessários e agora eles estão em uma role.
 -Documente isto com o seu gestor, mostrando a política.
 -Aprovando, homologue com o sistema conectado no banco clone.
 -Se rodar tudo OK, é marcar para implementar em produção.
 -É importante o apoio do fornecedor do sistema neste processo, pois vc
 pode precisar consultar alguma mensagem de erro de execução, pois vc não
 terá o fonte do código para ver qual objeto está sendo referenciado.


 Ederson Elias
 DBA Oracle
 http://br.linkedin.com/pub/ederson-elias/24/8b/8b0

 --- Em oracle_br@yahoogrupos.com.br, Paulo Couto paulopcto2002@...
 escreveu
 
  Ederson, estou com um problema, tenho um base oracle que comecei a
 gerenciar e percebi vários users com está role, sei que é perigoso, mas
 precisava entender melhor antes de remover.
 
  Meu receio é remover a role e alguém chiar de problema no sistema.
 
  Será que se o login já tiver os grants de select, insert, update  OU for
 o owner dos objetos teria algum problema em retirar a role DBA ??
 
  Att,

  



[As partes desta mensagem que não continham texto foram removidas]





--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
http://www.oraclebr.com.br/  

 Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
oracle_br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html




Re: [oracle_br] Re: duvida role dba

2012-06-27 Por tôpico Wadson Ramon
Lembrando que o nível mais alto da role dba e com with admin option .
Em 27/06/2012 09:59, Milton Bastos Henriquis Jr. miltonbas...@gmail.com
escreveu:

 Paulo

 Regra geral de SEGURANÇA: Não dê permissão NENHUMA.
 Sempre comece a partir do ZERO.

 Infelizmente não é o teu caso, pois o sistema já existe, os usuários já
 existem com atribuições
 que não deveriam ter. O correto é começar realmente do ZERO e ir dando os
 grants somente
 do que é realmente necessário.

 Como teu caso é mais complicado, pois já está em produção, vc vai ter que
 tomar essa decisão:
 vai realmente adotar uma política melhor de segurança?
 Se a resposta for SIM, vcs terão que fazer esse trabalho conjunto, ou seja,
 agendar um horário
 para começar essas alterações, deixar avisado que erros provavelmente
 ocorrerão, e aí vc terá
 que ir acertando os grants até que o sistema funcione normalmente.

 Óbvio que vc não precisa começar literalmente do Zero: analise cada um dos
 usuários que vc tem
 na base, verifique os grants óbvios que o sistema com certeza necessita,
 e daí sim crie um ponto
 de partida.


 Lembrando que vc não precisa colocar a produção em risco: use um ambiente
 de testes!





 2012/6/27 Paulo Couto paulopcto2...@yahoo.com.br

  **
 
 
  Ederson, estou com um problema, tenho um base oracle que comecei a
  gerenciar e percebi vários users com está role, sei que é perigoso, mas
  precisava entender melhor antes de remover.
 
  Meu receio é remover a role e alguém chiar de problema no sistema.
 
  Será que se o login já tiver os grants de select, insert, update  OU for
 o
  owner dos objetos teria algum problema em retirar a role DBA ??
 
  Att,
 
 
  
  De: ederson2001br ederson200...@yahoo.com.br
  Para: oracle_br@yahoogrupos.com.br
  Enviadas: Quarta-feira, 27 de Junho de 2012 9:37
  Assunto: [oracle_br] Re: duvida role dba
 
 
 
 
 
  Alô Paulo,
 
  A role DBA tem diversos direitos no banco, veja os principais (não
 consigo
  guardar tudo de cabeça):
 
  -Gerenciar espaço: pode criar tablespaces, bem como removê-las
  -Pode colocar tablespaces em modo apenas-leitura
  -Pode mudar a senha de usuários
  -Pode bloquear usuários
  -Pode criar novos usuários
  -Pode dropar (remover) um usuário com todos os seus dados
  -Pode alterar dados nas tabelas dos usuários
  -Pode manipular objetos dos usuários (criar, remover, alterar)
  -Pode visualizar objetos do dicionário de dados, como as views DBA_%
  -Pode fazer backup
  -Pode restaurar backup
  -Pode conceder privilégios de sistema a outros usuários
  -Pode remover privilégios de usuários
  -Pode criar novos conjuntos de privilégios (create role + grant)
  -Pode remover conjuntos de privilégios (drop role)
  -Pode gerenciar estatísticas
  -Pode gerenciar jobs (tarefas agendadas)
  -etc
 
  Enfim, pode muito mesmo. Já pensou um usuário curioso com este poder na
  mão? É metralhadora carregada na mão de símios.
 
  Veja todos os direitos (rodar no SQLPLUS), respondendo DBA à pergunta do
  script, depois compare com os direitos de um usuário comum (ex: SCOTT):
 
  SET echo OFF
  SET verify OFF
  SET pages 
  column granted_role form a25
  column owner form a15
  column table_name form a33
  column privilege form a33
  ACCEPT username prompt 'Enter Username : '
  PROMPT Roles granted to user
  SELECT granted_role,
  admin_option,
  default_role
  FROM dba_role_privs
  WHERE grantee=UPPER('username')
  ORDER BY 1;
  PROMPT Table Privileges granted to a user through roles
  SELECT granted_role,
  owner,
  table_name,
  privilege
  FROM
  ( SELECT granted_role FROM dba_role_privs WHERE
 grantee=UPPER('username')
  UNION
  SELECT granted_role
  FROM role_role_privs
  WHERE role IN
  (SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
  )
  ) roles,
  dba_tab_privs
  WHERE granted_role=grantee
  ORDER BY 1,2,3,4;
  PROMPT System Privileges assigned to a user through roles
  SELECT granted_role,
  privilege
  FROM
  ( SELECT granted_role FROM dba_role_privs WHERE
 grantee=UPPER('username')
  UNION
  SELECT granted_role
  FROM role_role_privs
  WHERE role IN
  (SELECT granted_role FROM dba_role_privs WHERE grantee=UPPER('username')
  )
  ) roles,
  dba_sys_privs
  WHERE granted_role=grantee
  ORDER BY 1,2;
  PROMPT Table privileges assigned directly to a user
  SELECT owner,
  table_name,
  privilege
  FROM dba_tab_privs
  WHERE grantee=UPPER('username')
  ORDER BY 1,2,3;
  PROMPT System privileges assigned directly to a user
  SELECT privilege,
  admin_option
  FROM dba_sys_privs
  WHERE grantee=UPPER('username');
  undefine username;
 
  Ederson Elias
  DBA Oracle
  http://br.linkedin.com/pub/ederson-elias/24/8b/8b0
 
  --- Em mailto:oracle_br%40yahoogrupos.com.br, Paulo Couto
 paulopcto2002@...
  escreveu
 
  
   Amigos, desculpem a pergunta meio de iniciante, mas até o momento não
  consegui captar o risco e quais permissões um login com a role DBA pode
 ter
  ? Já pesquisei bastante na net mas nunca acho nada que me