Posts Tagged ‘password’

Instalação do PostgreSQL

Postado em 09 nov 2009
Categoria(s) PostgreSQL

Instalação

Para instalar o PostgreSQL no Ubuntu digite o comando:

sudo apt-get install postgresql-common postgresql-8.3 postgresql-client-8.3

Mudando a senha do usuário postgres

sudo su postgres psql

No console do psql

ALTER USER postgres WITH PASSWORD 'postgres';
\q

Configurando o postgresql.conf

sudo vi /etc/postgresql/8.3/main/postgresql.conf

Localizar a linha:

listen_addresses = 'localhost'

e mudar para:

listen_addresses = '*'

remova o carácter de comentário (#) da linha.

A opção listen_addresses permite definir qual host pode se conectar no servidor, exemplo: localhost somente para conexões locais, * para qualquer host ou um ip específico como: 192.168.1.236.

Configurando pg_hba.conf

sudo vi /etc/postgresql/8.3/main/pg_hba.conf

Adicionar no fim do arquivo a linha:

host all all 192.168.1.0/24 md5

Essa configuração específica na ordem:

  • host: Define regras para o protocolo TCP/IP, essa opção pode ser host, local ou hostssl;
  • all: Define qual banco de dados que essa regra se aplica, se definindo all será para todos;
  • all: Define qual usuário tem permissão para usar essa regra, se definido all será para todos;
  • 192.168.1.0/24: Padrão CIDR, define qual faixa de ip’s podem ser conectar no servidor através do padrão CIDR;
  • md5: Método de autenticação, md5 padrão, trust para aceitar, reject para negar e mais algumas outras opções.

Reiniciar o PostgreSQL

sudo /etc/init.d/postgresql-8.3 restart

Usuários de banco de dados

Criar um novo usuário. Para pode criar um novo usuário é necessário estar logado com o usuário postgres.

sudo su postgres

Existem duas formas de criar e deletar um usuário, uma através do shell e outra através do cliente postgre.

Via Shell

createuser patrick

Via cliente postgres

psql
CREATE USER patrick;

As duas opções criam patrick como superusuário.

Exemplos:

Definindo password

CREATE USER patrick PASSWORD '123';

Definindo privilégios de superusuário, permissão para criar databases e roles:

CREATE USER patrick SUPERUSER INHERIT CREATEDB CREATEROLE;

Mais informações: http://pgdocptbr.sourceforge.net/pg80/sql-createuser.html.

Deletar usuário

Via Shell:

dropuser patrick

Via cliente postgres:

psql
DROP USER patrick;

Alterar usuário:

ALTER USER patrick PASSWORD ‘teste123′;

Mais detalhes: http://pgdocptbr.sourceforge.net/pg80/sql-alteruser.html.

  • Share/Bookmark

Ruby on Rails enviando e-mails usando o Google Apps

Postado em 31 jul 2009
Categoria(s) Ruby on Rails

Depois de algumas horas quebrando a cabeça, consegui fazer funcionar o envio de e-mails usando o Google Apps.

Vou explicar como configurar. ;-)
Vamos lá!

Configure o config/environment.rb

Configure o seu environment.rb com a sua conta de e-mail do Google Apps, ou conta do Gmail, os e-mails serão enviados via smtp.

1
2
3
4
5
6
7
8
9
10
11
12
...
Rails::Initializer.run do |config|
...
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    :address => "smtp.gmail.com",
    :port => 587,
    :authentication => :plain,
    :user_name => "seu-usuario@seudominio.com",
    :password => "sua senha"
  }
end

Mas só fazendo isso não vai funcionar, o Google Apps utiliza TLS (Transport Layer Security), ou seja, Protocolo de Camada de Sockets Segura.

Para funcionar é necessário adicionar a lib smtp_tls.rb responsável pela camada TLS, você encontra ela no seguinte endereço: http://github.com/patrickespake/SMTP-TLS/tree/master.

smtp_tls.rb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
require "openssl"
require "net/smtp"
 
Net::SMTP.class_eval do
  private
  def do_start(helodomain, user, secret, authtype)
    raise IOError, 'SMTP session already started' if @started
    #check_auth_args user, secret, authtype if user or secret
    check_auth_args user, secret
 
    sock = timeout(@open_timeout) { TCPSocket.open(@address, @port) }
    @socket = Net::InternetMessageIO.new(sock)
    @socket.read_timeout = 60 #@read_timeout
 
    check_response(critical { recv_response() })
    do_helo(helodomain)
 
    if starttls
      raise 'openssl library not installed' unless defined?(OpenSSL)
      ssl = OpenSSL::SSL::SSLSocket.new(sock)
      ssl.sync_close = true
      ssl.connect
      @socket = Net::InternetMessageIO.new(ssl)
      @socket.read_timeout = 60 #@read_timeout
      do_helo(helodomain)
    end
 
    authenticate user, secret, authtype if user
    @started = true
  ensure
    unless @started
      # authentication failed, cancel connection.
      @socket.close if not @started and @socket and not @socket.closed?
      @socket = nil
    end
  end
 
  def do_helo(helodomain)
    begin
      if @esmtp
        ehlo helodomain
      else
        helo helodomain
      end
    rescue Net::ProtocolError
      if @esmtp
        @esmtp = false
        @error_occured = false
        retry
      end
      raise
    end
  end
 
  def starttls
    getok('STARTTLS') rescue return false
    return true
  end
 
  def quit
    begin
      getok('QUIT')
    rescue EOFError
    end
  end
end

Copie o arquivo smtp_tls.rb para o diretório lib do seu projeto Ruby on Rails.

Carregando a lib smtp_tls.rb no environment.rb

Volte para o environment.rb e adicione para carregar a lib smtp_tls.rb:

1
2
3
4
5
...
require 'smtp_tls'
 
Rails::Initializer.run do |config|
...

Pronto! Fazendo isso você irá conseguir enviar e-mails usando o Google Apps ou Gmail.

Existe um detalhe a ser considerado na lib smtp_tls.rb, se você olhar o código vai encontrar as linhas abaixo:

7
8
9
10
...
    #check_auth_args user, secret, authtype if user or secret
    check_auth_args user, secret
...

O código por padrão tinha a linha check_auth_args user, secret, authtype if user or secret, mas quando essa linha está habilitado os e-mails não são enviados, você pode entender melhor o por que lendo aqui: http://blog.inspired.no/smtp-error-while-using-gmail-in-rails-271. Desta forma eu deixei apenas check_auth_args user, secret.

Se você precisa entender o básico de como criar um e-mail e enviar leia aqui: http://guides.rubyonrails.org/action_mailer_basics.html.

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark