OSS-DBプログラム

OSS-DB Silver 暗記 B-5

運用管理(52%):::基本的な運用管理作業【重要度:7】dokoQL不可

 

DBユーザ管理

 

  暗記  

  • ユーザ権限は、4種類ある
    • スーパーユーザ権限・ユーザ作成権限・DB作成権限・ログイン権限

 

DBユーザ追加・削除・変更

 

  暗記  

  • DBユーザ追加・削除は、PostgreSQL クライアントアプリケーションを使用する
    • createuser, dropuser

 

  • ユーザ権限
    • superuser :スーパーユーザ権限
    • createrole:ユーザ作成権限
    • createdb :DB作成権限
    • login :ログイン権限
DB superuser & user PostgreSQL
Fig.1 DB superuser & user

 

  • superuser は、superuser と user を追加・削除・変更できる
createuser superuser PostgreSQL
Fig.2 createuser superuser
  • user は、user を追加・削除・変更できる
createuser user PostgreSQL
Fig.3 createuser 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 PASSWORDnew_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;		// ロールの管理

 

参考

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です