多くのシステムが連携する場合かつ、一つのDBを参照する場合は、システムごとに DBアカウントを設け、アカウントごとの権限設定をしていたりする。
もしくは、アカウントごとにスキーマを用意して、そこにテーブル追加することで参照、更新可能なテーブルを制限したりする。
このような場合に、テーブルの権限設定を確認したり、スキーマを確認するが、その際のコマンドを記載しておく。
テーブル権限
システムテーブルを参照することで、テーブルに付与された参照、更新、削除権限を確認する
select GRANTEE,GRANTOR,OWNER,TABLE_NAME,PRIVILEGE from dba_tab_privs where OWNER='BBB' and TABLE_NAME='COUPON' |GRANTEE|GRANTOR|OWNER|TABLE_NAME|PRIVILEGE| |-------|-------|-----|----------|---------| |COUPON_A|BBB|BBB|COUPON|DELETE| |COUPON_A|BBB|BBB|COUPON|INSERT| |ORDER_A|BBB|BBB|COUPON|SELECT| |COUPON_A|BBB|BBB|COUPON|SELECT| |SHOP_A|BBB|BBB|COUPON|SELECT| |COUPON_A|BBB|BBB|COUPON|UPDATE|
スキーマ
SELECT * FROM all_synonyms WHERE owner = 'AAA' |OWNER|SYNONYM_NAME|TABLE_OWNER|TABLE_NAME|DB_LINK|ORIGIN_CON_ID| |-----|------------|-----------|----------|-------|-------------| |AAA|APP|BBB|APPEAL||4| |AAA|HISTORY|BBB|HISTORY||4| |AAA|HISTORY_SEQ|BBB|HISTORY_SEQ||4|
DBA_OBJECTSの検索で確認する方法
SELECT OWNER, OBJECT_NAME
FROM
DBA_OBJECTS
WHERE
OWNER = 'XXX_SERVICE'
AND
OBJECT_NAME = 'TEST_SHOP'
|OWNER|OBJECT_NAME|
|-----|------------|
|XXX_SERVICE|TEST_SHOP|