0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

postgresql install 〜スキーマ作成

Posted at

brew install

起動(電源切った時)
postgres -D /usr/local/var/postgres

db作成(ターミナル上)
createdb drugdb

ユーザー作成(ターミナル上)
createuser drug_user

dbに接続
psql -U drug_user drugdb

create schema drug_user;
ERROR: permission denied for database drugdb
→スキーマを作成するにはコマンドを実行するロールがスーパーユーザーか、
  スキーマを作成するデータベースで CREATE 権限を持っている必要がある。

PostgreSQLのロール:
ユーザやグループがデータベースへアクセスすることを管理するための仕組み。
ロールには名前が付けられ、データベース・オブジェクト(テーブルや関数など)を所有し、
他のロールからのアクセスを制限する権限を持つ。
オペレーティング・システムのユーザとは完全に独立したもの。

最初にPostgreSQLが立ち上がるとpostgresという名前のロールが作成されている。
このロールは何でもできるスーパーユーザ。
それで、postgresという名前のロールから他のロールに与える権限の管理が始まる。

例えば、postgresが作成したデータベースに別のロール:Aがアクセスしようとすると、データベースへのアクセスは拒否される。

しかし、データベースを作成して所有者となったpostgresからアクセス権限がAに与えられると、Aはデータベースへのアクセスが可能になる。

権限を与えるなら、
ALTER ROLE 名前 LOGIN;

スーパーユーザー権限を与えるなら、
ALTER ROLE 名前 SUPERUSER;
(その時点でのスーパーユーザーから権限を与える必要があるため、
スーパーユーザーにログインし直さないと、
must be superuser to alter superusersが出る。)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?