--データベース一覧
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