OSS-DB Silver 暗記 B-5
Contents
運用管理(52%):::基本的な運用管理作業【重要度:7】dokoQL不可
DBユーザ管理
暗記
- ユーザ権限は、4種類ある
- スーパーユーザ権限・ユーザ作成権限・DB作成権限・ログイン権限
DBユーザ追加・削除・変更
暗記
- DBユーザ追加・削除は、PostgreSQL クライアントアプリケーションを使用する
- createuser, dropuser
- ユーザ権限
- superuser :スーパーユーザ権限
- createrole:ユーザ作成権限
- createdb :DB作成権限
- login :ログイン権限
- superuser は、superuser と user を追加・削除・変更できる
- user は、user を追加・削除・変更できる
例:createuser / dropuser
[postgres]$ createuser alice [postgres]$ dropuser alice [postgres]$ ▯
DBユーザ変更
暗記
- DBユーザ変更は、SQL文(ALTER USER)を使用する
DBユーザ名変更
- 書式:ALTER USER user_name RENAME TO new_user_name;
例:DBユーザ名変更
examdb=> alter user joe rename to watson; // joe → watson ALTER ROLE examdb=> ▯
パスワード変更
- 書式:ALTER USER user_name WITH PASSWORD ‘new_password’;
例:パスワード変更
examdb=> alter user watson with password ‘abcd1234’; // new password:abcd1234 ALTER ROLE examdb=> ▯
権限変更
- 書式:ALTER USER user_name WITH
{ SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE | LOGIN | NOLOGIN };
例:権限変更
examdb=> alter user watson with createdb; // watson → createdb ALTER ROLE examdb=> ▯
ディスク領域管理
- MVCC(Multi Version Concurrency Control:多版型同時実行制御)
- Multi Version:多版
- Concurrency:同時実行、並列性
- Control :制御
- 複数ユーザからのトランザクションを、データを多版化することで、競合なく同時実行する
- データを多版化するので、不要ディスク領域が発生し、溜まっていく
vacuum
- MVCC により生じた不要ディスク領域を回収
- 書式:VACUUM [ full ] [ verbose ] [ table_name ];
examdb=# vacuum table1; // 処理対象:table1 VACUUM examdb=# ▯
examdb=# vacuum; // 処理対象:examdb(examdb内の全テーブル) VACUUM examdb=# ▯
analyze
- SQL 操作履歴の統計情報を更新
- 書式:ANALYZE [ table_name ];
examdb=# analyze; // 処理対象:examdb(examdb内の全テーブル) ANALYZE examdb=# ▯
vacuum analyze
- vacuum とanalyze をまとめて実行
- 書式:VACUUM ANALYZE [ table_name ]
autovacuum
- 自動バキューム
- postgresql.conf
- autovacuum(logical:on):自動バキューム有効・無効
権限管理(テーブル単位)
grant(付与)
- テーブルにアクセス権限を付与(grant)
- 書式:GRANT 権限 ON table_name TO { user_name | public };
- 権限:{ select | insert | update | delete | truncate | references | trigger | all }
examdb=# grant select,update on table1 to user1; // GRANT examdb=# ▯
revoke(取り消し)
- テーブルに付与したアクセス権限を取り消す(revoke)
- 書式:REVOKE 権限 ON table_name FROM { user_name | public }
- 権限:{ select | insert | update | delete | truncate | references | trigger | all }
examdb=# revoke all on table1 from watson; // REVOKE examdb=# ▯
DBCの各種情報管理
情報スキーマ
- information_schema という名前のスキーマ
- schemata:スキーマ一覧
- tables :テーブル一覧
- triggers :トリガー一覧
- views :ビュー一覧
- PostgreSQL 固有の情報は含まれていない
examdb=# select * from information_schema.tables; // テーブル一覧
システムカタログ
- PostgreSQL の内部情報を格納するテーブル・ビュー
- pg_catalog という名前のスキーマ
- pg_class :テーブル管理
- pg_index :インデックス管理
- pg_proc :関数管理
- pg_roles :ロール管理
- pg_settings:設定パラメータ管理
- pg_type :データ型管理
examdb=# select * from pg_catalog.pg_roles; // ロールの管理
参考
- IT資格といえばLPI-Japan | LinuC/OSS-DB/HTML5/ACCEL/OPCEL
- PostgreSQL 11.5文書
- OSS教科書 OSS-DB Silver Ver2.0対応
- 徹底攻略OSS-DB Silver問題集[Ver.2.0]対応
- dokoQL 学習用オンラインSQL実行環境
- スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)