Perl для системного администрирования



         

Документирование сервера - часть 3


  • Имя пользователя базы данных и его пароль запрашиваются интерактивно,

    поскольку альтернативы (прописывание их в коде или передача в командной строке, при которых любой, кто просматривает список процессов, сможет их увидеть) еще хуже. В данном случае символы пароля будут отображаться при вводе. Для большей осторожности стоит применять что-то подобное Те г тт. : Reaakey, чтобы подавить отображение символов.

  • Сервер Sybase и DBI

    В этом подразделе представлен аналог для Sybase. Внимательно просмотрите программу, а после этого поговорим о некоторых существенных моментах:

    use DBI;

    print "Введите имя пользователя: "; chomp($user = <STDIM>);

    print "Введите пароль для $user: "; chomp($pw = <STDIN>);

    $dbh = DBl->connect('dbi:Sybase'',Suser,$pw);

    die "Невозможно соединиться: $DBI::errstr\n" unless (defined $dbh);

    ищем базы данных на сервере

    $sth = $dbh->prepare(q{SELECT name from master dbo.sysdatarases}) cr

    die "Невозможно подготовить запрос к sysdatabases: ".

    $db'i->er rst r . "\n", $stli->oxecute or

    die "Невозможно выполнить запрос к sysdarabases: '.

    $dori->errstr. "\п";

    while (Sarof = $sth->fetchrow_arrayref) (

    push((3dbs, $aref->[0]): }

    $sth->finisn:

    foreach $cm (Mbs) {

    $dbh->do("USE $do") or

    die "Невозможно использовать $db: ".

    ®tables=():

    while ($агч'( - $.::;->fotchrow_arrayref) {

    die "Невозможно изменить Sdb: ".

    S'Jor->err-str."' n":

    # ищем поля для каждой таблицы foreach Stable (tables) { print "\t$table\n";

    $sth=$dbh->prepare(qq{EXEC bp_colunns Stable}) or

    die "Невозможно подготовить запрос sp^columns ", $obh-:-err.v

    $sth->execute or

    die "Невозможно выполнить запрос sp^columns: ".$dbh->errstr.

    while ($aref = $sth->fetchrow_arrayref) {

    print "\t\t",$aref->[3]," [",$aref->[5],"(",

    $aref->[6],")]\n": }




    Содержание  Назад  Вперед