dポイントプレゼントキャンペーン実施中!

データベースがちゃんと作成されているのに権限を追加するためにgrantでデータベース名にtestを指定するとdoes not existとなります。
なぜでしょうか?
roleも作っても同じようにdoes not existとなります。
スキーマはどちらもpublicで、データベース一覧を見るとtestはちゃんと作成されていました。
pathを調べると"$user" , public と出ました
なぜでしょうか?

「データベースがちゃんと作成されているのに」の質問画像

質問者からの補足コメント

  • mysql使ってやるとできました!
    ご回答ありがとうございました。

      補足日時:2021/01/11 09:12

A 回答 (4件)

そうなると私の見立ては誤っていたようです。


申し訳ありません。

pgAdminは使ったことがないのですが、pgAdmin上で該当のテーブルを参照できないから権限を付与しようとしているのですかね。

私の方で思いつくのが…、あとは、コマンドプロンプトとpgAdminで参照している実体が異なっている可能性はないかどうかです。
    • good
    • 0
この回答へのお礼

見てみます。
詳しく教えていた抱きありがとうございます。

お礼日時:2021/01/10 18:32

多分public(全ユーザだと思っています)にselect文を実行するための権限が既に付与されていると思っています。


そのため、個別のユーザに同じ権限を付与しようとしても失敗しているのかな?と。

この見立ては、これからselectの権限を付与しようとしているユーザが現状で既にselect文を実行できるのであれば…というものです。
何か適当なselect文が実行できることは試して頂けていますか?
    • good
    • 0
この回答へのお礼

tableを作成してselect文をしてみても同じようにnot existとなりますがpgAdmin 4で見てみるとtestの権限がちゃんと付与したいユーザー名に権限が追加されています。
コマンドプロンプトでは反映されていないということですか?

お礼日時:2021/01/10 11:43

revokeでpublicからselectの権限を外すことはできるでしょうか?


それでできるような気がします。
断言できず申し訳ないのですが。

★重要です★
画像の部分部分が消されているので、練習用の環境ではないと思っています。
元々publicに selectの権限が付与されていたのですよね。
その場合、他のユーザーで元々使えていたselect文が使えなくなってしまう可能性が高いです。

ですので、今の状態で権限を付与しようとしているコマンドが問題なく使えるのであれば、無理に削除や再付与をしない方が良いのではないかと思います。
    • good
    • 0
この回答へのお礼

revokeでtestの権限を削除してからgrantでuruhaにtestの権限を付与する、ということでしょうか?
昨日使い始めてよくわからないので間違っていたらすみません

お礼日時:2021/01/10 00:33

よく分かりませんが、"public"(多分全ユーザ)にselectの権限が付与されているからではないでしょうか?



適当なselect文を試してみたら実行できたりしませんか?
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
権限をpublicではなくroleで新しいユーザー名を作ってそれを権限に指定すればいけるということでしょうか?
一度roleでユーザーを作ったのですがそれも接続するときにdoesn't existと出て接続ができません。
なぜでしょうか

お礼日時:2021/01/09 22:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!