質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

1095閲覧

新規作成したユーザーで、新規にスキーマを利用したい。

kutunesirka

総合スコア13

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/02/18 11:41

新規に作成したユーザーで、新規に作成したスキーマを利用したいと思っているのですが、上手くいきません。
簡単に言うと、CREATE ROLE test_user WITH LOGIN PASSWORD 'test';CREATE SCHEMA test_schema;を実行し、test_userからtest_schemaを利用できるようにしたいのですが、所有者や権限などを設定しても、test_userからtest_schemaが見えません。

インストールから、手順を書いてみます。

# yumでインストール [root@localhost ~]# yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm [root@localhost ~]# yum install postgresql11 [root@localhost ~]# yum install postgresql11-server # 初期データベースを作成。 [root@localhost ~]# PGSETUP_INITDB_OPTIONS="-E UTF8 --locale=C" /usr/pgsql-11/bin/postgresql-11-setup initdb # 起動および自動起動設定 [root@localhost ~]# systemctl start postgresql-11.service [root@localhost ~]# systemctl enable postgresql-11.service # postgresユーザーに切り替え [root@localhost ~]# su - postgres -bash-4.2$ psql -U postgres # ユーザー作成 postgres=# CREATE ROLE test_user WITH LOGIN PASSWORD 'test'; postgres=# alter role test_user with superuser; postgres=# CREATE DATABASE test_db; # スキーマを作成して、そのスキーマの所有者を↑の新規作成ユーザーに変更 postgres=# CREATE SCHEMA test_schema; postgres=# ALTER SCHEMA test_schema OWNER TO test_user; postgres=# GRANT USAGE ON SCHEMA test_schema TO test_user; postgres=# GRANT all ON SCHEMA test_schema TO test_user;

ここまで実施して、test_usertest_schemaにテーブルを作成しようと思ったのですが、以下のようにスキーマを確認しようとすると、なぜか表示されません。

[root@localhost ~]# psql -U test_user -d test_db ユーザ test_user のパスワード: psql (11.1) "help" でヘルプを表示します。 test_db=# test_db=# \dn スキーマ一覧 名前 | 所有者 --------+---------- public | postgres (1 行) test_db=#

所有者に設定し、さらに権限も付与していると思うのですが、他に必要な作業がありますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

すみません、普通に解決しました。
test_dbにアクセスした上で、スキーマを作成すべきだったのに、それが出来ていませんでした。

[root@localhost ~]# psql -U test_user -d test_db test_db=# CREATE SCHEMA test_schema; CREATE SCHEMA test_db=# ALTER SCHEMA test_schema OWNER TO test_user;

投稿2019/02/18 11:53

編集2019/02/18 11:54
kutunesirka

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問