shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Socorro


From: walter
Subject: Re: [shell-script] Socorro
Date: Thu, 8 Aug 2002 12:27:24 -0300

set verify off;
set termout on;
set feedback off;
set echo off;
set pagesize 0;

set termout on
select 'Creating user build script...' from dual;
set termout off;

create table usr_temp( lineno number,
  usr_name varchar2(30),text varchar2(80))
/

DECLARE
 CURSOR usr_cursor IS select username,
           password,
           default_tablespace,
           temporary_tablespace,
           profile
  from sys.dba_users
  where username != 'SYS' AND username != 'SYSTEM'
order by username;

 CURSOR qta_cursor(c_usr VARCHAR2) IS select tablespace_name,
           max_bytes
  from sys.dba_ts_quotas
  where username = c_usr;

 lv_username             sys.dba_users.username%TYPE;
 lv_password             sys.dba_users.password%TYPE;
 lv_default_tablespace   sys.dba_users.default_tablespace%TYPE;
 lv_temporary_tablespace sys.dba_users.default_tablespace%TYPE;
 lv_profile              sys.dba_users.profile%TYPE;
 lv_tablespace_name      sys.dba_ts_quotas.tablespace_name%TYPE;
 lv_max_bytes            sys.dba_ts_quotas.max_bytes%TYPE;
 lv_string               VARCHAR2(80);
 lv_lineno               number:=0;

 procedure write_out(p_line INTEGER, p_name VARCHAR2,
       p_string VARCHAR2) is
 begin
  insert into usr_temp(lineno,usr_name,text) values
       (p_line,p_name,p_string);
end;


BEGIN
 OPEN usr_cursor;
 LOOP
  FETCH usr_cursor INTO lv_username,
                        lv_password,
                        lv_default_tablespace,
                        lv_temporary_tablespace,
                        lv_profile;
  EXIT WHEN usr_cursor%NOTFOUND;

  lv_lineno:=1;
  lv_string:=('CREATE USER '||lower(lv_username));
  write_out(lv_lineno,lv_username,lv_string);
  lv_lineno:=lv_lineno+1;
  if lv_password IS NULL then
    lv_string:='IDENTIFIED EXTERNALLY';
  else
    lv_string:=('IDENTIFIED BY VALUES '||''''||lv_password||'''');
  end if;
write_out(lv_lineno,lv_username,lv_string);
  lv_lineno:=lv_lineno+1;
  lv_string:='DEFAULT TABLESPACE '||lv_default_tablespace;
  write_out(lv_lineno,lv_username,lv_string);
  lv_lineno:=lv_lineno+1;
  lv_string:='TEMPORARY TABLESPACE '||lv_temporary_tablespace;
  write_out(lv_lineno,lv_username,lv_string);
  lv_lineno:=lv_lineno+1;
  OPEN qta_cursor(lv_username);
  LOOP
   FETCH qta_cursor INTO lv_tablespace_name,
               lv_max_bytes;
   EXIT WHEN qta_cursor%NOTFOUND;
   lv_lineno:=lv_lineno+1;
   if lv_max_bytes IS NULL then
     lv_string:='QUOTA UNLIMITED ON '||lv_tablespace_name;
   else
     lv_string:='QUOTA '||lv_max_bytes||' ON '||lv_tablespace_name;
   end if;
   lv_lineno:=lv_lineno+1;
   write_out(lv_lineno,lv_username,lv_string);
  END LOOP;
CLOSE qta_cursor;
  lv_string:=('PROFILE '||lv_profile||';');
  write_out(lv_lineno,lv_username,lv_string);
  lv_lineno:=lv_lineno+1;
  lv_string:='                    ';
  write_out(lv_lineno,lv_username,lv_string);
  lv_string:=('grant create session to '||lv_username||';');
  write_out(lv_lineno,lv_username,lv_string);
 END LOOP;
 CLOSE usr_cursor;

END;
/
spool create_users.sql
set heading off
set recsep off
col test format a80 word_wrap


select text
from usr_temp
order by usr_name, lineno;

spool off;

drop table usr_temp;

exit




----- Original Message -----
From: "Jorge E. Santos" <address@hidden>
To: <address@hidden>
Sent: Thursday, August 08, 2002 12:02 PM
Subject: [shell-script] Socorro


e ae pessoal!!

eu estou prescisando exportar os usuários do provedor onde trabalho linux e
as senhas para cadastrar em um banco de dados SQL para controlar tudo via
web.
me falaram que tem um script que faz isto, mas não encontro e  nem em outras
listas, se puderem me ajudar fico grato!

Jorge


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



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------


Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html





reply via email to

[Prev in Thread] Current Thread [Next in Thread]