ディクショナリ

--データベース一覧

ps -ef | grep pmon

--テーブルスペース一覧

select * from dba_tablespaces;
select * from v$tablespace;
select * from dba_data_files;

--スキーマ一覧

ユーザ一覧参照

--ユーザ一覧

select * from dba_users;

--ロール一覧

select * from dba_roles;

--テーブル一覧

select * from dba_tables;
select * from user_tables;

--カラム一覧

select * from dba_tab_cols;
select * from user_tab_cols;

--制約一覧

select * from dba_constraints;
select * from user_constraints;

--インデックス一覧
select * from dba_indexes;
select * from user_indexes;

--権限一覧

select * from dba_sys_privs;
select * from dba_tab_privs;
select * from dba_role_privs;

select * from session_privs;

select * from role_sys_privs;
select * from role_tab_privs;
select * from role_role_privs;

--パーティション一覧

select * from dba_tab_partitions;
select * from dba_ind_partitions;
select * from dba_tab_subpartitions;
select * from dba_ind_subpartitions;

select * from user_tab_partitions;
select * from user_ind_partitions;
select * from user_tab_subpartitions;
select * from user_ind_subpartitions;


--グローバル変数一覧

select * from v$parameter2;

--セッション一覧
select * from v$session;

--トリガー一覧
select * from dba_triggers;
select * from user_triggers;

--ファンクション一覧

select * from dba_objects where object_type = 'FUNCTION';
select * from user_objects where object_type = 'FUNCTION';


--プロシージャ一覧

select * from dba_objects where object_type = 'PROCEDURE';
select * from user_objects where object_type = 'PROCEDURE';

--ビュー一覧
select * from dba_views;
select * from user_views;

--シーケンス一覧

select * from dba_sequences;
select * from user_sequences;

--スケジューラ一覧

select * from dba_scheduler_jobs;
select * from user_scheduler_jobs;

--マテビュー一覧

select * from dba_mviews;
select * from user_mviews;

--シノニム一覧

select * from dba_synonyms;
select * from user_synonyms;

 

--オブジェクト一覧
select * from dba_objects;
select * from user_objects;

 

--データベース一覧
select * from information_schema.SCHEMATA;


--テーブルスペース一覧

(5.7)
select * from information_schema.INNODB_SYS_TABLESPACES;

 

--スキーマ一覧
select * from information_schema.SCHEMATA;


--ユーザ一覧
select User,Host from mysql.user;

--ロール一覧
(8.0)
ユーザ一覧参照


--テーブル一覧

select * from information_schema.TABLES where table_schema='test';


※ビューを除く場合 table_type = 'BASE TABLE' の条件を付与する


show tables from test;
※ビューも含む

 

 

 

--カラム一覧
select * from information_schema.COLUMNS
where table_schema='test'
and table_name = 'tab6';

show columns from tab1;
show FULL columns from tab1\G

 

--制約一覧

select * from information_schema.TABLE_CONSTRAINTS
where table_schema='test'
and table_name = 'tab3';

select * from information_schema.KEY_COLUMN_USAGE
where table_schema='test'
and table_name = 'tab3';

select * from information_schema.referential_constraints
where CONSTRAINT_SCHEMA='test'
;


--インデックス一覧
select table_schema,table_name,index_name,column_name,seq_in_index
from information_schema.statistics
where table_schema='test';

show index from tab6\G
show keys from tab6\G


--権限一覧


SELECT * FROM information_schema.user_privileges; -- グローバルレベル権限のリスト
SELECT * FROM information_schema.schema_privileges; -- データベースレベル権限のリスト
SELECT * FROM information_schema.table_privileges; -- テーブルレベル権限のリスト
SELECT * FROM information_schema.column_privileges; -- カラムレベル権限のリスト

--使用可能な権限一覧
show privileges;

--権限テーブルを直接見る場合
select * from mysql.user;
select * from mysql.db;
select * from mysql.tables_priv;
select * from mysql.columns_priv;
select * from mysql.procs_priv;

 

--パーティション一覧
select * from information_schema.PARTITIONS;

--グローバル変数一覧
select * from information_schema.GLOBAL_VARIABLES;
select * from information_schema.SESSION_VARIABLES;


--セッション一覧
select * from information_schema.PROCESSLIST;

--トリガー一覧
select * from information_schema.TRIGGERS;

 


--ファンクション一覧

SELECT
ROUTINE_SCHEMA, /* ストアドプロシージャがあるデータベース */
ROUTINE_NAME, /* ストアドプロシージャの名前 */
ROUTINE_TYPE /* プロシージャとファンクションのどちらかを示す */
FROM
information_schema.ROUTINES
WHERE
ROUTINE_TYPE = 'FUNCTION'; /* ファンクションのみ抽出 */
;

 


--プロシージャ一覧
SELECT
ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_TYPE
FROM
information_schema.ROUTINES
WHERE
ROUTINE_TYPE = 'PROCEDURE';

 

--ビュー一覧
select * from information_schema.VIEWS;


--シーケンス一覧

※auto_increment設定のあるカラム

select * from information_schema.COLUMNS
where table_schema='test'
and EXTRA like '%auto_increment%';

--スケジューラ一覧

select * from information_schema.EVENTS;

 

--オブジェクト一覧

SELECT
TABLE_SCHEMA AS object_schema
,TABLE_NAME AS object_name
,TABLE_TYPE AS object_type
FROM INFORMATION_SCHEMA.TABLES
UNION ALL
SELECT
ROUTINE_SCHEMA
,ROUTINE_NAME
,ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES
UNION ALL
SELECT
TRIGGER_SCHEMA
,TRIGGER_NAME
,'TRIGGER'
FROM INFORMATION_SCHEMA.TRIGGERS
ORDER BY object_schema, object_type, object_name;

 

--データベース一覧
SELECT oid,* FROM pg_database;


--テーブルスペース一覧
select oid,*,pg_tablespace_location(oid) from pg_tablespace;


--スキーマ一覧

select * from information_schema.schemata;
SELECT oid,* FROM pg_namespace order by oid;


--ユーザ一覧

SELECT * FROM pg_shadow;

--ロール一覧

ユーザ一覧参照

--テーブル一覧

select * from pg_stat_user_tables;

select oid,* from pg_class where relkind = 'r';

 

--テーブルOIDの一覧
/usr/pgsql-9.4/bin/oid2name -d test -i

 

select *
from information_schema.tables
where table_catalog='test'
and table_name = 'tab2'
order by table_name;

 

--カラム一覧

select *
from information_schema.columns
where table_catalog='test'
and table_name = 'tab2'
order by ordinal_position;

 


--制約一覧

SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_SCHEMA = 'public'
ORDER BY CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME
;

SELECT *
FROM INFORMATION_SCHEMA.constraint_column_usage
WHERE TABLE_SCHEMA = 'public'
ORDER BY CONSTRAINT_CATALOG, CONSTRAINT_SCHEMA, CONSTRAINT_NAME
;


--インデックス一覧


SELECT * FROM pg_index;
select oid,* from pg_class where relkind = 'i';

 

--権限一覧


grant all on database test to user1;
grant all on tablespace tbs1 to user1;
grant all on schema schema1 to user1;
grant all on function func1(i integer) to user1;
grant all on all functions in schema schema1 to user1;
grant all on sequence seq1 to user1;
grant all on all sequences in schema schema1 to user1;
grant all on tab1 to user1;
grant all on all tables in schema schema1 to user1;
grant all(col1) on tab1 to user1;


select * from INFORMATION_SCHEMA.table_privileges;

select * from INFORMATION_SCHEMA.column_privileges;

select * from INFORMATION_SCHEMA.routine_privileges;

 

\z

select * from aclexplode('{joe=arwdDxt/postgres}');


※データベース接続権限について
データベース接続権限はpublicに付与されている。( =Tc/postgres )
そのため、データベース接続権限を明示的に付与しなくても接続できる。
grant connect文を意味あるものにするためには下記のように設定する

revoke connect on database test from public;
grant connect on database test to user1;

 

--パーティション一覧

select * from pg_partitioned_table;


--グローバル変数一覧

select * from pg_settings;

select name,unit,context from pg_settings
order by name;


--セッション一覧


select * from pg_stat_activity;


--トリガー一覧

SELECT * FROM information_schema.triggers;

 

--ファンクション一覧

SELECT oid,* FROM pg_proc;

select * from information_schema.routines;


--プロシージャ一覧

ファンクション一覧参照


--ビュー一覧

SELECT * FROM pg_views;

SELECT * FROM information_schema.views;

select oid,* from pg_class where relkind = 'v';

 

--シーケンス一覧

SELECT * FROM information_schema.sequences;

select oid,* from pg_class where relkind = 'S';

select * from pg_sequences;

 

--スケジューラ一覧

select * from pgagent.pga_schedule;
select * from pgagent.pga_job;

 

--マテビュー一覧

select * from pg_matviews;

--オブジェクト一覧

SELECT
c.oid
, n.nspname AS schemaname
, c.relname AS tablename
, CASE WHEN c.relkind = 'r' THEN 'テーブル'
WHEN c.relkind = 'v' THEN 'ビュー'
WHEN c.relkind = 'S' THEN 'シーケンス'
WHEN c.relkind = 'i' THEN 'インデックス'
ELSE c.relkind || ''
END AS col
FROM pg_class c
JOIN pg_namespace n
ON c.relnamespace = n.oid
WHERE n.nspname = 'public'
AND c.relkind IN ('r', 'v', 'S')
ORDER BY n.nspname asc, c.relkind asc, c.relname asc
;

 

--データベース一覧
SELECT name, database_id, create_date
FROM sys.databases ;
GO

sp_databases
go

 

--テーブルスペース一覧

select * from sys.filegroups;
go

sp_helpfilegroup
go

--データファイル一覧
select * from sys.database_files;
go

select * from sys.master_files;
go


sp_helpfile
go


--スキーマ一覧

SELECT * FROM sys.schemas;
go

--ユーザ一覧

--ログイン、サーバーロール
select * from sys.server_principals;
go

--ユーザ、データベースロール
select * from sys.database_principals;
go

--ロール一覧

ユーザ一覧参照

--テーブル一覧

select * from sys.tables;
go


--カラム一覧

select object_name(object_id) object_name,* from sys.columns;
go


--制約一覧

select object_name(object_id) object_name, * from sys.objects
where type in ('C','F','PK');
go


--インデックス一覧

use test
go
select object_name(object_id) object_name,* from sys.indexes;
go


--権限一覧

select * from sys.server_permissions;
go

select * from sys.database_permissions;
go

--権限付与
use master
go
grant alter any database to public with grant option;
go

use test
go
grant select on object::dbo.tab1 to guest;
go


--パーティション一覧

select object_name(object_id) object_name,* from sys.partitions;
go


--グローバル変数一覧

--サーバープロパティ
SELECT *
FROM sys.configurations ;
GO

--データベースプロパティ

select * from sys.databases ;
go

 

 

--セッション一覧
select * from sys.dm_exec_sessions where host_name is not NULL;
go


--トリガー一覧

select * from sys.triggers;
go

 


--ファンクション一覧

select * from sys.objects
where type in ('FN','FS','FT','IF');
go

 


--プロシージャ一覧

select * from sys.objects
where type in ('P');
go


--ビュー一覧

SELECT * FROM sys.views;
go


--シーケンス一覧

select * from sys.sequences;
go

 


--スケジューラ一覧

select * from dbo.sysjobs_view;
go

 

--マテビュー一覧

ビュー一覧参照


--シノニム一覧

select * from SYS.SYNONYMS;
go


--オブジェクト一覧

select * from sys.objects;
select * from sys.objects where schema_id = schema_id('schema1');
go

SELECT name,
type,
case type
when 'AF' then 'Function' --集計関数 (CLR)
when 'C' then 'Constraint' --CHECK 制約
when 'D' then 'Constraint' --DEFAULT (制約またはスタンドアロン)
when 'F' then 'Constraint' --FOREIGN KEY 制約
when 'FN' then 'Function' --SQL スカラ関数
when 'FS' then 'Function' --アセンブリ (CLR) スカラ関数
when 'FT' then 'Function' --アセンブリ (CLR) テーブル値関数
when 'IF' then 'Function' --SQL インライン テーブル値関数
when 'IT' then 'Table' --内部テーブル
when 'K' then 'Constraint' --PRIMARY KEY 制約
when 'P' then 'Procedure' --SQL ストアド プロシージャ
when 'PC' then 'Procedure' --アセンブリ (CLR) ストアド プロシージャ
when 'PG' then 'Plan Guide' --プラン ガイド
when 'PK' then 'Constraint' --PRIMARY KEY 制約
when 'R' then 'Rule' --ルール (旧形式、スタンドアロン)
when 'RF' then 'Procedure' --レプリケーション フィルタ プロシージャ
when 'S' then 'Table' --システム ベース テーブル
when 'SN' then 'Synonym' --シノニム
when 'SQ' then 'Service Queue' --サービス キュー
when 'TA' then 'Trigger' --アセンブリ (CLR) DML トリガ
when 'TF' then 'Function' --SQL テーブル値関数
when 'TR' then 'Trigger' --SQL DML トリガ
when 'U' then 'Table' --テーブル (ユーザー定義)
when 'UQ' then 'Constraint' --UNIQUE 制約
when 'V' then 'View' --ビュー
when 'X' then 'Procedure' --拡張ストアド プロシージャ
else '[UNKNOWN]'
end as type_name
FROM sys.objects
ORDER BY name ;
go