技術ブログ
目次
渡部です。Autonomous DatabaseはFull-Managedのデータベースサービスです。
Full-Managedにより、データベース管理作業が自動化されDBAの負荷を軽減できますが、その反面、実行可能な操作に大きな制限が課せられます。
イベント告知です。2019年04月24日(水) 18:30 ~ 21:00 Oracle Cloud Meetup 九州 #2で
Oracle Cloud Autonomous Databaseについてお話させていただきます。詳細は以下をご覧くださいませ。
主な制限には以下があります。
詳細については、以下を確認ください。
接続の制限については、実装方法は容易に理解できますが、
表領域の追加などのOracle Databaseでの機能制限については、どのように実装されているのでしょうか。
以下の記事で説明した通り、Autonomous Databaseの実体はPDBです。
勘の良いかたはこの時点でお気づきになるかもしれませんが、これらのOracle Databaseの機能制限はPDBロックダウンプロファイル機能を用いて実装されています。
PDBロックダウンプロファイルとは、PDBで実行可能な操作を制限するOracle Databaseの機能です。
Oracle Database 12c R2で導入されました。
様々なデータベースをPDBとしてマルチテナント環境に統合した場合、PDBの構成変更に制約をかけたい場合があります。
それぞれのPDBでバラバラの構成を許すと、構成が複雑になり、ひいては管理コストの増加をもたらすためです。
また、セキュリティ上の問題や意図しないリソースの消費につながりかねない一部の操作を禁止したい場合もあります。
このような場合、PDBロックダウンプロファイルを構成して、PDBで実行可能な操作を制限します。
まず、初期化パラメータ PDB_LOCKDOWN を見てみると、'DWCS'という値が設定されており、ロックダウンプロファイルが有効であること、ロックダウンプロファイル設定がDWCSであることがわかります。
SQL> show parameter PDB_LOCKDOWN
NAME TYPE VALUE
------------------------- ----------- ------
_pdb_lockdown_ddl_clauses big integer 131066
pdb_lockdown string DWCS
次に、ビュー v$lockdown_rules を見てみると、機能(FEATURE)の制限は以下であることがわかります。
SQL> SELECT RULE, STATUS FROM v$lockdown_rules WHERE RULE_TYPE = 'FEATURE' AND status ='DISABLE';
RULE STATUS
------------------------------------------------ -------
COMMON_SCHEMA_ACCESS DISABLE
CONNECTIONS DISABLE
CTX_LOGGING DISABLE
LOCAL_USER_PROTECTED_SCHEMA_ACCESS DISABLE
NETWORK_ACCESS DISABLE
OS_ACCESS DISABLE
SYSTEM_DATA DISABLE
XDB_DEPRECATED DISABLE
8行が選択されました。
文(STATEMENT)の制限についてはは、句の指定がない制限と句の指定がある制限にわけて見てみます。
句の指定がない制限は、句の指定によらず、その文の実行をすべて制限します。"CREATE TABLESPACE"をはじめとする、多くの文の実行が禁止されていることがわかります。
SQL> SELECT RULE, count(*) FROM v$lockdown_rules
2 WHERE RULE_TYPE = 'STATEMENT'
3 AND CLAUSE IS NULL
4 GROUP BY RULE order by 2 desc;
RULE COUNT(*)
------------------------------------------------ ----------
CREATE TABLESPACE 1
DROP INDEXTYPE 1
CREATE INDEX 1
ADMINISTER KEY MANAGEMENT 1
ALTER SYSTEM 1
DROP MATERIALIZED VIEW LOG 1
CREATE DATABASE LINK 1
ALTER PROFILE 1
CREATE PROFILE 1
ALTER SESSION 1
DROP INDEX 1
CREATE MATERIALIZED VIEW LOG 1
ALTER TABLESPACE 1
ALTER DATABASE 1
CREATE INDEXTYPE 1
ALTER PLUGGABLE DATABASE 1
ALTER MATERIALIZED VIEW 1
DROP MATERIALIZED VIEW 1
DROP TABLESPACE 1
CREATE MATERIALIZED VIEW 1
ALTER INDEX 1
ALTER MATERIALIZED VIEW LOG 1
ALTER INDEXTYPE 1
23行が選択されました。
句の指定がある制限は、句の指定があるパターンにマッチする場合、その文の実行を制限します。
SQL> SELECT RULE, count(*) FROM v$lockdown_rules
2 WHERE RULE_TYPE = 'STATEMENT'
3 AND CLAUSE IS NOT NULL
4 GROUP BY RULE order by 2 desc;
RULE COUNT(*)
------------------------------------------------ ----------
ALTER SYSTEM 58
ALTER SESSION 55
ALTER DATABASE 8
ALTER PLUGGABLE DATABASE 8
SQL> SELECT clause, clause_option, status FROM v$lockdown_rules
2 WHERE RULE_TYPE = 'STATEMENT'
3 AND RULE = 'ALTER SYSTEM'
4 ORDER BY status;
CLAUSE CLAUSE_OPTION STATUS
---------------- ------------------------------------------------ -------
SET RESULT_CACHE_MAX_RESULT DISABLE
SET _MAX_IO_SIZE DISABLE
SET RESULT_CACHE_MODE DISABLE
SET _PARALLEL_CLUSTER_CACHE_POLICY DISABLE
DISABLE
SET _CLOUD_SERVICE_TYPE DISABLE
SET _OPTIMIZER_GATHER_STATS_ON_LOAD_ALL DISABLE
SET _PDB_LOCKDOWN_DDL_CLAUSES DISABLE
SET _DEFAULT_PCT_FREE DISABLE
SET _OPTIMIZER_GATHER_STATS_ON_LOAD_HIST DISABLE
SET "_PDB_MAX_DIAG_SIZE" DISABLE
SET "_PDB_MAX_AUDIT_SIZE" DISABLE
SET DB_FILES DISABLE
SET MAX_IDLE_BLOCKER_TIME DISABLE
SET _DATAPUMP_GATHER_STATS_ON_LOAD DISABLE
SET _OPTIMIZER_ANSWERING_QUERY_USING_STATS DISABLE
SET RESOURCE_MANAGER_PLAN DISABLE
SET _ENABLE_PARALLEL_DML DISABLE
SET _LDR_IO_SIZE DISABLE
SET _DATAPUMP_INHERIT_SVCNAME DISABLE
SET _PX_XTGRANULE_SIZE DISABLE
SET _OPTIMIZER_ALLOW_ALL_ACCESS_PATHS DISABLE
SET PARALLEL_MIN_DEGREE DISABLE
SET "_PDB_INHERIT_CFD" DISABLE
SET _CELL_OFFLOAD_VECTOR_GROUPBY DISABLE
SET PARALLEL_DEGREE_POLICY DISABLE
SET NLS_TIMESTAMP_FORMAT ENABLE
SET MAX_IDLE_TIME ENABLE
SET NLS_NCHAR_CONV_EXCP ENABLE
SET OPTIMIZER_IGNORE_HINTS ENABLE
SET ENABLE
KILL SESSION ENABLE
SET APPROX_FOR_AGGREGATION ENABLE
SET NLS_NUMERIC_CHARACTERS ENABLE
SET NLS_CALENDAR ENABLE
SET PLSQL_CCFLAGS ENABLE
SET NLS_ISO_CURRENCY ENABLE
SET NLS_TIME_TZ_FORMAT ENABLE
SET OPTIMIZER_IGNORE_PARALLEL_HINTS ENABLE
SET NLS_DUAL_CURRENCY ENABLE
SET NLS_SORT ENABLE
SET NLS_LANGUAGE ENABLE
SET PLSQL_WARNINGS ENABLE
SET FIXED_DATE ENABLE
SET NLS_DATE_FORMAT ENABLE
SET APPROX_FOR_COUNT_DISTINCT ENABLE
SET NLS_TIME_FORMAT ENABLE
SET NLS_CURRENCY ENABLE
SET PLSQL_OPTIMIZE_LEVEL ENABLE
SET NLS_COMP ENABLE
SET PLSCOPE_SETTINGS ENABLE
SET AWR_PDB_AUTOFLUSH_ENABLED ENABLE
SET NLS_TIMESTAMP_TZ_FORMAT ENABLE
SET PLSQL_DEBUG ENABLE
SET NLS_DATE_LANGUAGE ENABLE
SET DDL_LOCK_TIMEOUT ENABLE
SET APPROX_FOR_PERCENTILE ENABLE
SET NLS_LENGTH_SEMANTICS ENABLE
SET NLS_TERRITORY ENABLE
59行が選択されました。
ALTER SYSTEMについて句の指定がある制限を見てみると、以下のことがわかります。
イベント告知です。2019年04月24日(水) 18:30 ~ 21:00 Oracle Cloud Meetup 九州 #2で
Oracle Cloud Autonomous Databaseについてお話させていただきます。詳細は以下をご覧くださいませ。