• ベストアンサー

postgreSQLでのユーザ作成

宜しくお願い致します。 postgresql7.2 でlinuxアカウントに登録されていない ユーザを作成しました。(createuser hoge) その後 "psql -U hoge DB名" でアクセスすると psql: FATAL 1: user "hoge" does not exist になってしまいます。 linuxアカウントに登録されていないユーザで DBにアクセスする事は可能なのでしょうか? それとも必ずlinuxアカウントに登録されている ユーザ名で作成する必要があるのでしょうか? ご教授下さい。m(__)m

  • sonar
  • お礼率57% (27/47)

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

linuxアカウントではないhogeさんを作ってみましたが、特に、問題ありません。 [postgres]$ psql -l List of databases Name | Owner | Encoding -----------+----------+----------- postgres | postgres | SQL_ASCII template0 | postgres | SQL_ASCII template1 | postgres | SQL_ASCII (3 rows) [postgres]$ createuser hoge Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n CREATE USER [postges]$ psql -U hoge postgres Welcome to psql 7.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit postgres=>

sonar
質問者

お礼

ご返答ありがとうございます。 xjdさんの手順と同じ事をしているのですが なぜか上手くできません。。。 linuxアカウントに無くてもOKと言うことなので なんとかもうひと踏ん張りしてみます。 ホントにありがとうございました。

関連するQ&A

  • PostgreSQLのpsqlでユーザの扱いがうまくいかない

    こんにちは ただいま、PostgreSQL7.2.3をインストール(Redhat7.3)し、これからpsqlを使い、SQL操作をしようとしていたところですが、psqlと入力すると "psql: FATAL 1: Database "postgres" does not exist in the system catalog."となります。 PostgreSQLのユーザは "postgres","nobody"です。 現在、postgresからpostmaster -Sで起動しています. 下記に端末で行った作業内容をコピーしてみました。 今回インストールの参考にした書籍は"PHPxPostgreSQLで作る最強Webシステム」石井達夫著です。この本の手順に従ったつもりですが、うまくいきません。 [postgres@www root]$ postmaster -S [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ select dtname from php bash: syntax error near unexpected token `from' [postgres@www root]$ select dtname from template0 bash: syntax error near unexpected token `from' [postgres@www root]$ [postgres@www root]$ psql select dtname from php psql: warning: extra option from ignored psql: warning: extra option php ignored psql: FATAL 1: Database "select" does not exist in the system catalog. [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ psql psql: FATAL 1: Database "postgres" does not exist in the system catalog.

  • Turbolinux8でPostgreSQL

    Turbo Linux 8.0 apache1.3.27-13 php 4.2.3-10 postgresql 7.2.2-4 の環境ですが、ある参考書で、 => grant all on TableA to nobody; となっていたので実行したのですが、 ERROR: user "nobody" does not exist となってしまいます。 この場合、どのように対処したらいいのでしょうか? nobodyはuseraddできるのでしょうか?

  • postgreSQLのユーザー

    現在、はじめてpostgreSQL7.2.1(Windows版)を使用しています。 インストールして、psqlにてログイン時にびっくりしたのが、 ユーザー、パスワード共に何でもかんでもログインが出来る事です。 oracleでは確か、初めにsystem(?)でログインして、ユーザーを作成 する事から色々と始めた様な気がします。 そこで質問です。これはwindows版なのでこうなっているのか。それとも linux版でも同様にログインは誰でも可能なのか? デフォルトで作成されているデータベースについてのみの事なのか? 何か理由があるのか? 以上、よろしくお願いします。

  • postgresqlにて「psql」コマンド

    postgresqlを使用してます。 既存をリプレイスしたく、 VMでバージョンを上げて試してます。 引き継いだ案件で今までほっておいたのですが、 設定がわからず、確認箇所があれば、 ご教示頂きたいです。 □既存 (1)あるユーザでサーバにログインします。 (2)psqlのみでDBに接続します。 ここで、伺いたいのですが、 psqlのみの場合、ログインに(1)のあるユーザが適用されるかと考えてましたが、 実態は別のユーザー。 ※ちなみに-Uで別のユーザーを指定してみましたが同じ挙動です。 お伺いしたい事は以下です。その下は補足です。 「-U省略と別ユーザを紐づけている箇所がわかりません。思い当たる箇所があればご教示頂きたいです。」 ~/.pgpassに設定があったので、それかと考えもしましたが、 この設定はパスワードを省略出来る??と記載があり、ユーザー名までは違う? 新しくVMで作った方に入れてみても、[psql]のみではユーザー名は変更出来ませんでした。 psqlのみの時、-Uがどこか連携する箇所あればご教示頂きたいです。 どうして別ユーザーで入れるのかわからずとん挫しております故、 何卒宜しくお願い致します。

  • PostgreSQLのリンクテーブル?について

    はじめまして、yossy136kgと申します。 下記の件、ご教授をお願いします。 ・TEST1というDBがあったとして、psqlより\dでテーブル一覧を参照すると、「No relations found.」と表示されます。 ・MS AccessからODBC経由でTEST1のDBのリンクテーブルを作成する際、別のDB(TEST2)のテーブルが参照できます。 例)TEST2.HOGE1、TEST2.HOGE2・・・ 【質問】 TEST1のDBからTEST2のDBのテーブルをリンクさせるようなことは可能なのでしょうか? ちなみにPostgreSQL8.2.3、CentOSです。

  • PostgreSQLの入れ替え

    PostgreSQLのホントの初心者です。 今使っているLinuxサーバ(RedHat9)になぜかたま たまPostgreSQL(7.3.2)が入っていて、使っていた のですが、この際8.1.4に上げようと思いたちました。 これは、バージョンアップというより「入れ直し」と 考え、まず7.3.2を削除しようと考えて、 # rpm -e postgresql と入れてみたのですが、関連付けられているためか 削除できません。 それで、7.3.2にDBを全部削除してしまえばよいと 考え、5つのDB(template0,template1,test,test2, db1)を削除する方法を調べたのですが、「psql」で はDBは消せないようですし、どれかのDBに入って SQLを動かすと、「自分(のDB)」はけセません。 それと、最初からあった、template0,template1も 削除できませんでした。 DBを消すのが目的ではなく、7.3.2を削除したいので すが、どのようにやったらよいか教えて下さい。 よろしくお願いします。

  • postgresのリストアでDBを自動作成する方法

    質問させてください。 例えば、以下のコマンドを実行してpostgreSQLでリストアをするとします psql -h localhost -U postgres -d testdb この場合、testdbというDBを作成していないと、エラーになります。 DBまで自動的に作成するコマンドはありませんでしょうか。 psql、pg_restoreの両方でお聞きしたいです。

  • 最初のパスワードがわからなくなってしまいました・・・

    PostgreSQLの最初に設定したパスワードを忘れてしまったのですが設定したパスワードを調べる方法はないでしょうか? pgAdminIIIではパスワードを入れるとアクセスできるのですが、コマンドプロントからするとなぜかアクセスできません。。。。 同じようにパスワードがわからなくなった方の質問・回答から以下の処理をしてみたのですが・・・ *************** pg_hba.confのエントリを編集し直します。 # TYPE DATABASE USER IP-ADDRESS/CIDR-mask METHOD host all all 127.0.0.1/32 password この、passwordと書いているエントリの部分をtrustへ変更します そしてpostgreSQLを再起動し、postgresユーザーで全部いじれるようになります。 使えるようになったらtrustとした部分をpasswordにもどし、ネットワークへつないでください。 ***************** 上記の方法でやってみたのですがパスワードをtrustの状態にし、「psql postgres」 とうち、データベースへ接続しようとしたら psql: role "Owner" does not exist とエラーが出てしまうのです。何がいけないのでしょうか・・・ DBへの参考書やネットで調べたりしているのですが、ツールを使わずにDB操作を行おうとしたらコマンドプロンプトからDBへ接続し、sql文で操作するものだと思うのですが・・・・間違った解釈なのでしょうか・・・・

  • ファイルを用いて一括でテーブルを作成できない

    csvデータをインポートするためにデータベース"database_6"を作成し、"create.sql"というファイルをユーザ"database_6"のホームディレクトリ"database_6"に配置した後、"database_6"でログインして、下記コマンドを実行し、テーブル"music"を作成しようとしたところ、 $ psql -e -f create.sql bash: psql: command not found というエラーメッセージが表示されます。なお、PostgreSQLは自動起動設定されています。"database_6"のOwnerは"postgres"で、下記の書籍に記載された方法(別の方法は何も記載されていない)でデータベース"database_6"を作成しました。 $ createdb database_6 で作成しまいた。そこで、同じく下記の書籍に記載された方法(別の方法は何も記載されていない)でユーザ"database_6"を作成しました。 $ createuser -d -A database_6 なお、ユーザ"postgres"を用いた場合には、 FATAL: database "postgres" does not exist というエラーメッセージが表示されます。

  • データベース接続について

    いつもお世話になっております。 PHP4.2でのpostgresqlへのネットワーク経由での接続なのですが、現在私の環境が apache 1.3 php4.2 OS WindowsXPです。 ネットワーク経由(LAN)にてLinuxサーバーのpostgresql(Ver7)へアクセスしようとしているのですが、 Warning: pg_connect() unable to connect to PostgreSQL server: FATAL 1: user "SYSTEM" does not exist in ↑上記のようなエラーがかえってきてしまいます。 ユーザー"system"をデータベースユーザーへ登録してgrant文で権限を与えたのですがうまくいきません。 どなたか、識者のかた、解決の糸口でもかまいませんのでアドバイスいただけないでしょうか? カテゴリもOSかデータベースか迷いましたが、こちらのほうが経験者が多いと思い投稿させていただきました。よろしくお願いいたします。

    • ベストアンサー
    • PHP