個人的メモです。
PostgreSQLサーバを走らせる
$ brew services | rg postgres
postgresql@14 none
$ brew services start postgresql@14
シェルでの操作
# ユーザを作る
$ createuser <user名>
# DBを作る
$ createdb -O <ownerのuser> <db名>
# デフォルトのDBのインタラクティブシェルに入る
$ psql -d postgres
# DB指定してインタラクティブシェルに入る
$ psql -d <接続先のdb名> -U <接続するuser名>
- デフォルトのsuperuserの名前は
postgres
PostgreSQLインタラクティブシェルにて
スーパユーザでとログインするとdb1=#
, その他ユーザだとdb1=>
が表示されているはず。
# db1を使用(MySQLでいうUSE)
\connect データベース名
# データベース一覧
db1=>\l
# スキーマ一覧
db1=>\dn
# ユーザ一覧
db1=>\du
db1=>select * from pg_user;
# 現在のDBのテーブル一覧 (全スキーマの)
db1=>\dt
# テーブル作成
# スキーマを明示的に指定しないと、publicスキーマ内に作られる模様。
db1=>CREATE TABLE new_table(....);
# テーブル詳細
db1=>\d <table名>;
# テーブル削除
db1=>DROP TABLE <table名>;
# userのパスワード変更
db1=>\password
db1=>\password <user名>
# userに権限を与える
=# ALTER USER <user名> CREATEDB
# DBを削除する
=# DROP DATABASE "<DB名>";
# テーブルのスキーマを見る
=>\d <table名>
権限回りの操作は以下。
# それぞれのuserの権限を確認する
t-# \du
# super userの権限を与える
=# ALTER USER some_user WITH Superuser;