<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentários sobre: Autenticação de usuários em Banco de Dados</title>
	<atom:link href="http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/</link>
	<description>Ideas not commited yet!</description>
	<lastBuildDate>Wed, 18 Jan 2012 17:43:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Por: Telles</title>
		<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/comment-page-1/#comment-2465</link>
		<dc:creator>Telles</dc:creator>
		<pubDate>Thu, 06 May 2010 18:39:09 +0000</pubDate>
		<guid isPermaLink="false">#comment-2465</guid>
		<description>Helio Geminiano, sou obrigado a reconhecer que não penso mais da mesma forma que eu pensava quando escrevi este post. Apesar de concordar com você em 95% do que você escreveu eu gostaria de fazer algumas observações:

* Não são todos que utilizam Oracle e não são todos que utilizam a versão enterprise do Oracle. Então não são todos que tem acesso ao FGA. O PostgreSQL tem o SE PostgreSQL que é uma alternativa bem interessante.
* Hoje acredito que cada método de autenticação tem a sua aplicação em um contexto diferente;

Tanto que este assunto me preocupou que eu mudei de idéia e fiz esta palestra: http://www.slideshare.net/telles/postgresql-o-elefante-encouraado-presentation</description>
		<content:encoded><![CDATA[<p>Helio Geminiano, sou obrigado a reconhecer que não penso mais da mesma forma que eu pensava quando escrevi este post. Apesar de concordar com você em 95% do que você escreveu eu gostaria de fazer algumas observações:</p>
<p>* Não são todos que utilizam Oracle e não são todos que utilizam a versão enterprise do Oracle. Então não são todos que tem acesso ao FGA. O PostgreSQL tem o SE PostgreSQL que é uma alternativa bem interessante.<br />
* Hoje acredito que cada método de autenticação tem a sua aplicação em um contexto diferente;</p>
<p>Tanto que este assunto me preocupou que eu mudei de idéia e fiz esta palestra: <a href="http://www.slideshare.net/telles/postgresql-o-elefante-encouraado-presentation" rel="nofollow">http://www.slideshare.net/telles/postgresql-o-elefante-encouraado-presentation</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Helio Geminiano</title>
		<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/comment-page-1/#comment-2435</link>
		<dc:creator>Helio Geminiano</dc:creator>
		<pubDate>Fri, 19 Mar 2010 13:56:46 +0000</pubDate>
		<guid isPermaLink="false">#comment-2435</guid>
		<description>Apesar de ser um post antigo, resolvi apresentar a minha opinião. Ela é resultado de mais de 15 anos trabalhando do bancos Oracle.

1. A opção de conceder privilégios através de roles, que podem ser ajustadas como default ou não, resolvem o primeiro item. Um role apenas para conexão e leitura (default, sem senha) permite o usuário se conectar, fazer SELECTs e mais nada. Uma segunda role (não default, com senha desconhecida pelo usuário) permite update, insert e delete apenas através dos aplicativos.

2 e 3. Um usuário com privilégios para criar, bloquer e eliminar usuários (e não &quot;concedendo superpoderes&quot;) resolve os itens 2 e 3. Uma tela simples no aplicativo auxiliar esse gestor de usuários (que não irá dar comando como CRETE USER direto no banco).

4. Ninguém migra banco executando comandos &quot;um a um&quot;. Fazemos um script que lê o banco &quot;origem&quot;, gerando os comandos que serão executados no banco &quot;destino&quot;. Por exemplo (simplificadíssimo):

SELECT &#039; CREATE USER &#039; &#124;&#124; USERNAME &#124;&#124; &#039; IDENTIFIED BY VALUES &#039;&#039;&#039; &#124;&#124; PASSWORD &#124;&#124; &#039;&#039;&#039;;&#039;
FROM DBA_USERS;

Se existem 10 ou 10.000 usuários, o trabalho de elaborar o script é mesmo. A margem de erro também.
O mesmo se dá para privilégios, roles, etc.

5. Através do banco não controlarei acessos a telas, mas acessos a atividades. Se bloquear um DELETE em uma tabela, por exemplo, ele pode acessar a vontade a tela que permite excluir dados de tal tabela. Mas excluir mesmo, ele não vai. Quanto ao limite por faixas de valores, realmente o Oracle não permite essa funcionalidade. Mas diversos experts em AD me disserem que ele também não permite. Associar um usuário a um grupo e verificar, no aplicativo, se o mesmo pertence a este grupo (e assim limitar por faixas) não seria uma funcionalidade do AD, mas do aplicativo. Posso fazer o mesmo com o Oracle, associando o usuário a roles e testando no aplicativo.

O que mais encontro é desconhecimento das possibilidades do banco Oracle. Como segurança é cada vez mais um requisito das empresas, fico a vontade com tais capacidade do banco. Com FGA posso auditar com tranquilidade tudo o que me interessa e indicar os possíveis &quot;culpados&quot;.

Alguma dicas:

a) Criar usuários distintos para atuar como &quot;dono&quot; dos objetos de cada sistema. Esses usuários serão raramente utilizados para conexão com o banco.
b) Criar usuários para acesso de trabalho no banco. Prefiro 1x1 (um usuário no banco para cada &quot;pessoa física&quot;).
c) Não crie sinônimos públicos para que os usuários do item &quot;b&quot; acessem os dados dos usuários do item &quot;a&quot;. Utilize a sintaxe dono.tabela (ou como aparece nos manuais da Oracle, schema.table). Ou estude o comando ALTER SESSION SET CURRENT_SCHEMA.

Para terminar: essa é apenas minha opinião. Em vários anos atuando como DBA, não vi ainda solução melhor. Quando encontrar, adotarei de bom grado.

Sds.</description>
		<content:encoded><![CDATA[<p>Apesar de ser um post antigo, resolvi apresentar a minha opinião. Ela é resultado de mais de 15 anos trabalhando do bancos Oracle.</p>
<p>1. A opção de conceder privilégios através de roles, que podem ser ajustadas como default ou não, resolvem o primeiro item. Um role apenas para conexão e leitura (default, sem senha) permite o usuário se conectar, fazer SELECTs e mais nada. Uma segunda role (não default, com senha desconhecida pelo usuário) permite update, insert e delete apenas através dos aplicativos.</p>
<p>2 e 3. Um usuário com privilégios para criar, bloquer e eliminar usuários (e não &#8220;concedendo superpoderes&#8221;) resolve os itens 2 e 3. Uma tela simples no aplicativo auxiliar esse gestor de usuários (que não irá dar comando como CRETE USER direto no banco).</p>
<p>4. Ninguém migra banco executando comandos &#8220;um a um&#8221;. Fazemos um script que lê o banco &#8220;origem&#8221;, gerando os comandos que serão executados no banco &#8220;destino&#8221;. Por exemplo (simplificadíssimo):</p>
<p>SELECT &#8216; CREATE USER &#8216; || USERNAME || &#8216; IDENTIFIED BY VALUES &#8221;&#8217; || PASSWORD || &#8221;&#8217;;&#8217;<br />
FROM DBA_USERS;</p>
<p>Se existem 10 ou 10.000 usuários, o trabalho de elaborar o script é mesmo. A margem de erro também.<br />
O mesmo se dá para privilégios, roles, etc.</p>
<p>5. Através do banco não controlarei acessos a telas, mas acessos a atividades. Se bloquear um DELETE em uma tabela, por exemplo, ele pode acessar a vontade a tela que permite excluir dados de tal tabela. Mas excluir mesmo, ele não vai. Quanto ao limite por faixas de valores, realmente o Oracle não permite essa funcionalidade. Mas diversos experts em AD me disserem que ele também não permite. Associar um usuário a um grupo e verificar, no aplicativo, se o mesmo pertence a este grupo (e assim limitar por faixas) não seria uma funcionalidade do AD, mas do aplicativo. Posso fazer o mesmo com o Oracle, associando o usuário a roles e testando no aplicativo.</p>
<p>O que mais encontro é desconhecimento das possibilidades do banco Oracle. Como segurança é cada vez mais um requisito das empresas, fico a vontade com tais capacidade do banco. Com FGA posso auditar com tranquilidade tudo o que me interessa e indicar os possíveis &#8220;culpados&#8221;.</p>
<p>Alguma dicas:</p>
<p>a) Criar usuários distintos para atuar como &#8220;dono&#8221; dos objetos de cada sistema. Esses usuários serão raramente utilizados para conexão com o banco.<br />
b) Criar usuários para acesso de trabalho no banco. Prefiro 1&#215;1 (um usuário no banco para cada &#8220;pessoa física&#8221;).<br />
c) Não crie sinônimos públicos para que os usuários do item &#8220;b&#8221; acessem os dados dos usuários do item &#8220;a&#8221;. Utilize a sintaxe dono.tabela (ou como aparece nos manuais da Oracle, schema.table). Ou estude o comando ALTER SESSION SET CURRENT_SCHEMA.</p>
<p>Para terminar: essa é apenas minha opinião. Em vários anos atuando como DBA, não vi ainda solução melhor. Quando encontrar, adotarei de bom grado.</p>
<p>Sds.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: SAVEPOINT &#187; Segurança no PostgreSQL - Parte I: &#8220;A Saga&#8221;</title>
		<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/comment-page-1/#comment-1266</link>
		<dc:creator>SAVEPOINT &#187; Segurança no PostgreSQL - Parte I: &#8220;A Saga&#8221;</dc:creator>
		<pubDate>Fri, 30 May 2008 20:39:34 +0000</pubDate>
		<guid isPermaLink="false">#comment-1266</guid>
		<description>[...] a parte de segurança no Oracle e andei investigando algumas questões sobre o assunto aqui e acolá neste blog e na palestra sobre melhores práticas que fiz no FISL 9.0 e no PGCon Brasil 2007. [...]</description>
		<content:encoded><![CDATA[<p>[...] a parte de segurança no Oracle e andei investigando algumas questões sobre o assunto aqui e acolá neste blog e na palestra sobre melhores práticas que fiz no FISL 9.0 e no PGCon Brasil 2007. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: SAVEPOINT &#187; O que aprendi com o blog</title>
		<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/comment-page-1/#comment-387</link>
		<dc:creator>SAVEPOINT &#187; O que aprendi com o blog</dc:creator>
		<pubDate>Sun, 07 Oct 2007 14:50:36 +0000</pubDate>
		<guid isPermaLink="false">#comment-387</guid>
		<description>[...] sujeitas a alterações a qualquer momento. Um bom exemplo disto foi quando eu escrevi sobre &#8220;Autenticação de Usuários em Bancos de Dados&#8220;. Eu me arrisquei um pouco mais e divulguei este texto na lista do Oracle-BR. O Chiappa, que [...]</description>
		<content:encoded><![CDATA[<p>[...] sujeitas a alterações a qualquer momento. Um bom exemplo disto foi quando eu escrevi sobre &#8220;Autenticação de Usuários em Bancos de Dados&#8220;. Eu me arrisquei um pouco mais e divulguei este texto na lista do Oracle-BR. O Chiappa, que [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Leandro DUTRA</title>
		<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/comment-page-1/#comment-99</link>
		<dc:creator>Leandro DUTRA</dc:creator>
		<pubDate>Thu, 26 Jul 2007 14:24:52 +0000</pubDate>
		<guid isPermaLink="false">#comment-99</guid>
		<description>A única opção sã em termos de segurança é a 3.  Aliás, vide &lt;a href=&quot;http://lwn.net/Articles/241464/&quot; rel=&quot;nofollow&quot;&gt;SE PostgreSQL&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>A única opção sã em termos de segurança é a 3.  Aliás, vide <a href="http://lwn.net/Articles/241464/" rel="nofollow">SE PostgreSQL</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: anônimo</title>
		<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/comment-page-1/#comment-38</link>
		<dc:creator>anônimo</dc:creator>
		<pubDate>Fri, 22 Jun 2007 13:51:49 +0000</pubDate>
		<guid isPermaLink="false">#comment-38</guid>
		<description>Esqueci de agradecer! São pontos que não podemos esquecer e que são difíceis de se negociar.
Obrigado!

Gilberto</description>
		<content:encoded><![CDATA[<p>Esqueci de agradecer! São pontos que não podemos esquecer e que são difíceis de se negociar.<br />
Obrigado!</p>
<p>Gilberto</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: anônimo</title>
		<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/comment-page-1/#comment-37</link>
		<dc:creator>anônimo</dc:creator>
		<pubDate>Fri, 22 Jun 2007 13:48:58 +0000</pubDate>
		<guid isPermaLink="false">#comment-37</guid>
		<description>&quot;Eu realmente tenho uma solução milagrosa para todos os problemas citados&quot;, qual é?
Sempre usei a opção:
2) Criação de usuário único da aplicação

E acho que é a melhor pois com os recursos adicionais que os SGBDs trazem, em especial o Oracle, facilita bastante.
Gilberto</description>
		<content:encoded><![CDATA[<p>&#8220;Eu realmente tenho uma solução milagrosa para todos os problemas citados&#8221;, qual é?<br />
Sempre usei a opção:<br />
2) Criação de usuário único da aplicação</p>
<p>E acho que é a melhor pois com os recursos adicionais que os SGBDs trazem, em especial o Oracle, facilita bastante.<br />
Gilberto</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: anônimo</title>
		<link>http://www.midstorm.org/~telles/2007/06/21/autenticacao-de-usuarios-em-banco-de-dados/comment-page-1/#comment-30</link>
		<dc:creator>anônimo</dc:creator>
		<pubDate>Thu, 21 Jun 2007 23:27:39 +0000</pubDate>
		<guid isPermaLink="false">#comment-30</guid>
		<description>Depois de ler este artigo, levando em consideração que eu manjo tando de SGDB quanto de física sub atômica, só tenho uma consideração a fazer:

Jogue a tarefa de cuidar dos usuários para o SysAdmin. Ou seja, todos os meus exércitos no Serviço de Diretórios.</description>
		<content:encoded><![CDATA[<p>Depois de ler este artigo, levando em consideração que eu manjo tando de SGDB quanto de física sub atômica, só tenho uma consideração a fazer:</p>
<p>Jogue a tarefa de cuidar dos usuários para o SysAdmin. Ou seja, todos os meus exércitos no Serviço de Diretórios.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

