Re: [oracle_br] Re: duvida role dba
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
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
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
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