Olá, boa tarde!
Preciso montar uma base para que aplicações web/php possam realizar transações, consultas, em nosso banco oracle 11g. A pergunta que surgiu é a seguinte:
- Posso apenas criar um novo owner com as tabelas que as aplicações irão utilizar, sem grant para a base oficial, permitindo apenas insert, select e delete nesta base auxiliar e meu sistema já estará 100% seguro? A ideia é inserir os dados das aplicações web nesta base auxiliar e depois, processos JOB da base oficial iriam buscar os dados nesta base da web, ou seja, apenas a base quente terá permissões de leitura e escrita nesta base auxiliar/web.
Essa minha ideia é válida? Ou existem formas ainda mais seguras para realizar esta tarefa?
Aguardo suas opiniões.
Att,
Arlei Cardoso
Criar base Oracle segura para Aplicação Web/PHP
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Arlei,
Eu diria que o ORACLE lhe permite criar ambientes estanques dentro de uma instância.
Para isso:
- Crie um schema para conter os dados de sua base auxiliar (ex: AUXDB);
- Crie os objetos da base auxiliar neste schema;
- Sua aplicação WEB deverá acessar somente este schema;
- Crie um schema para a base oficial (ex:OFIDB);
- Crie os objetos oficiais nesta base oficial;
- Conectado como o usuário do schema auxiliar (AUXDB), fornecer grants de acesso das tabelas da base auxiliar
para o schema oficial (OFIDB);
- Criar sinomimos privados no schema oficial para os objetos de banco que serão acessados na base auxiliar. Com
isso, uma tabela A do schema AUXDB pode ser acessada por OFIDB sem mencionar o owner (ex: SELECT * FROM
AUXDB.A);
Na teoria - e falando de forma grosseira - isso já te permitiria criar um ambiente "seguro" para sua aplicação. O correto seria criar mais usuários (ex: AUXDB_APLIC, OFIDB_APLIC) para somente acessar os objetos dos schemas originais (ex: AUXDB, OFIDB). Mas lembre que nenhum sistema será muito seguro se os usuários souberem as senhas dos schemas e colocarem a mão na manutenção dos dados.
Só finalizando, pesquise um pouco mais sobre USERS, ROLES, GRANTS, SYNONYMS, para entender como blindar o seu ambiente de forma mais segura.
Abraços e boa sorte,
Sergio Coutinho
Eu diria que o ORACLE lhe permite criar ambientes estanques dentro de uma instância.
Para isso:
- Crie um schema para conter os dados de sua base auxiliar (ex: AUXDB);
- Crie os objetos da base auxiliar neste schema;
- Sua aplicação WEB deverá acessar somente este schema;
- Crie um schema para a base oficial (ex:OFIDB);
- Crie os objetos oficiais nesta base oficial;
- Conectado como o usuário do schema auxiliar (AUXDB), fornecer grants de acesso das tabelas da base auxiliar
para o schema oficial (OFIDB);
- Criar sinomimos privados no schema oficial para os objetos de banco que serão acessados na base auxiliar. Com
isso, uma tabela A do schema AUXDB pode ser acessada por OFIDB sem mencionar o owner (ex: SELECT * FROM
AUXDB.A);
Na teoria - e falando de forma grosseira - isso já te permitiria criar um ambiente "seguro" para sua aplicação. O correto seria criar mais usuários (ex: AUXDB_APLIC, OFIDB_APLIC) para somente acessar os objetos dos schemas originais (ex: AUXDB, OFIDB). Mas lembre que nenhum sistema será muito seguro se os usuários souberem as senhas dos schemas e colocarem a mão na manutenção dos dados.
Só finalizando, pesquise um pouco mais sobre USERS, ROLES, GRANTS, SYNONYMS, para entender como blindar o seu ambiente de forma mais segura.
Abraços e boa sorte,
Sergio Coutinho
-
- Rank: Estagiário Pleno
- Mensagens: 6
- Registrado em: Qua, 13 Ago 2008 3:19 pm
- Localização: Criciuma - SC
Olá Sergio Coutinho.
Muito obrigado por sua resposta e dicas. Vou analisar esta opção que parece ser muito interessante. Também estamos vendo a possibilidade de instalar um banco específico para as transações web. Penso que ficaria ainda mais seguro, caso um bug Oracle por exemplo consiga permitir acesso full à qualquer usuário da base estaríamos ainda mais seguros, visto que nesta base não teria nenhuma informação oficial.
Abraço,
Arlei Cardoso
Muito obrigado por sua resposta e dicas. Vou analisar esta opção que parece ser muito interessante. Também estamos vendo a possibilidade de instalar um banco específico para as transações web. Penso que ficaria ainda mais seguro, caso um bug Oracle por exemplo consiga permitir acesso full à qualquer usuário da base estaríamos ainda mais seguros, visto que nesta base não teria nenhuma informação oficial.
Abraço,
Arlei Cardoso
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Arlei,
Se pesquisar na documentação da ORACLE, existem uma série de manuais ou checklists que permitirão criar uma base de dados mais segura:
Exemplos:
http://www.oracle.com/technetwork/datab ... 132870.pdf
http://www.oracle.com/technetwork/datab ... 133102.pdf
Abraços e boa sorte,
Sergio Coutinho
Se pesquisar na documentação da ORACLE, existem uma série de manuais ou checklists que permitirão criar uma base de dados mais segura:
Exemplos:
http://www.oracle.com/technetwork/datab ... 132870.pdf
http://www.oracle.com/technetwork/datab ... 133102.pdf
Abraços e boa sorte,
Sergio Coutinho
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes