DBMS_DBFS_SFS

The DBMS_DBFS_SFS package provides an interface to operate a SecureFile-based store (SFS) for the content interface described in the DBMS_DBFS_CONTENT package.

This chapter contains the following topics:

See Also: Oracle Database SecureFiles and Large Objects Developer’s Guide

DBMS_DBFS_SFS Overview

The DBMS_DBFS_SFS package is a sample implementation of a package that implements and extends the DBMS_DBFS_CONTENT_SPI interface. It provides a POSIX-compliant file system stored in the RDBMS.

DBMS_DBFS_SFS Security Model

The DBMS_DBFS_SFS package runs with AUTHID CURRENT_USER.

DBMS_DBFS_SFS Constants

The DBMS_DBFS_SFS package uses the constants shown in the following tables.

Note: Oracle has deprecated the older encryptions and hashing algorithms. The deprecated algorithms for DBMS_CRYPTO and native network encryption include MD4, MD5, DES, 3DES, and RC4-related algorithms as well as 3DES for Transparent Data Encryption (TDE). Removing older, less secure cryptography algorithms prevents accidental use of these algorithms. To meet your security requirements, Oracle recommends that you use more modern cryptography algorithms, such as the Advanced Encryption Standard (AES).

Table 1 DBMS_DBFS_SFS Constants - Compression Levels

Constant Type Value Description
COMPRESSION_DEFAULT VARCHAR2(32) '' Use the default SecureFile compression level
COMPRESSION_LOW VARCHAR2(32) 'LOW' Use compression level 'LOW'
COMPRESSION_MEDIUM VARCHAR2(32) 'MEDIUM' Use compression level 'MEDIUM'
COMPRESSION_HIGH VARCHAR2(32) 'HIGH' Use compression level 'HIGH'

Table 2 DBMS_DBFS_SFS Constants - Used by the encryption Parameter

Constant Type Value Description
ENCRYPTION_DEFAULT VARCHAR2(32) '' Use the default SecureFile encryption algorithm
ENCRYPTION_AES128 VARCHAR2(32) 'AES128' Use encryption AES 128 bit
ENCRYPTION_AES192 VARCHAR2(32) 'AES192' Use encryption AES 192 bit
ENCRYPTION_AES256 VARCHAR2(32) 'AES256' Use encryption AES 256 bit

Table 3 DBMS_DBFS_SFS Constants - Used by the npartitions Parameter

Constant Type Value Description
DEFAULT_PARTITIONS INTEGER 16 Default to 16 partitions

Table 4 DBMS_DBFS_SFS Constants - Used by the partition_key Parameter

Constant Type Value Description
PARTITION_BY_ITEM INTEGER 1 Use a hash of the item name for the partition key
PARTITION_BY_PATH INTEGER 2 Use a hash of the path name for the partition key
PARTITION_BY_GUID INTEGER 3 Use a hash of the GUID as the partition key

Summary of DBMS_DBFS_SFS Subprograms

This table lists and describes the DBMS_DBFS_SFS Package subprograms.

Table 5 DBMS_DBFS_SFS Package Subprograms

Subprogram Description
CREATEFILESYSTEM Procedure Creates a file system store
CREATESTORE Procedure Creates a new DBFS SFS store
DROPFILESYSTEM Procedures Drops the DBFS SFS store
INITFS Procedure Initializes a POSIX file system store

CREATEFILESYSTEM Procedure

This procedure creates a file system store.

Syntax

DBMS_DBFS_SFS.CREATEFILESYSTEM (
   store_name         IN     VARCHAR2,
   schema_name        IN     VARCHAR2    DEFAULT NULL,
   tbl_name           IN     VARCHAR2    DEFAULT NULL,
   tbl_tbs            IN     VARCHAR2    DEFAULT NULL,
   lob_tbs            IN     VARCHAR2    DEFAULT NULL,
   use_bf             IN     BOOLEAN     DEFAULT FALSE,
   properties         IN     DBMS_DBFS_CONTENT_PROPERTIES_T DEFAULT NULL,
   create_only        IN     BOOLEAN     FALSE,
   use_objects        IN     BOOLEAN     DEFAULT FALSE,
   with_grants        IN     BOOLEAN     DEFAULT FALSE,
   do_dedup           IN     BOOLEAN     DEFAULT FALSE,
   do_compress        IN     BOOLEAN     DEFAULT FALSE
   compression        IN     VARCHAR2    DEFAULT COMPRESSION_DEFAULT,
   do_encrypt         IN     BOOLEAN     DEFAULT FALSE,
   encryption         IN     VARCHAR2    DEFAULT ENCRYPTION_DEFAULT,
   do_partition       IN     BOOLEAN     DEFAULT FALSE,
   npartitions        IN     NUMBER      DEFAULTDEFAULT_PARTITIONS,
   partition_key      IN     NUMBER      DEFAULT PARTITION_BY_ITEM,
   partition_guidi    IN     BOOLEAN     DEFAULT FALSE,
   partition_pathi    IN     BOOLEAN     DEFAULT FALSE,
   partition_prop     IN     BOOLEAN     DEFAULT TRUE);

Parameters

Table 6 CREATEFILESYSTEM Procedure Parameters

Parameter Description
store_name Name of store
schema_name Schema for the store, defaulting to the current schema
tbl_name Table for store entries. If not specified, an internally generated name is used.
tbl_tb Tablespace for the store, defaulting to the schema’s default tablespace
lob_tbs Tablespace in which to create the LOB segment. It defaults to the user’s default tablespace.
use_bf If TRUE, a BasicFile LOB is used; otherwise a SecureFile LOB is used.
properties Table of (name, value, typecode) tuples used to configure the store properties. Currently no such properties are defined or used.
create_only If TRUE, the file system is created, but not registered with the current user
use_objects If TRUE, a single base-table with an object-type column (using a nested table) is created to backup the new file system. Otherwise, a pair of (parent, child) tables is used to backup the file system. In both cases, the object type nested table or the child table is used only for user-defined properties.
with_grants If TRUE, DML and query access permissions are granted to the DBFS_ROLE as part of creating the file system. Otherwise, explicit grants (or existing permissions) are required to access the file system.
do_dedup If TRUE, do deduplication the underlying SecureFile column
do_compress If TRUE, do compression the underlying SecureFile column
compression Compression algorithm to use (see Table 61-1)
do_encrypt If TRUE, encrypt the underlying SecureFile column
encryption encryption algorithm to use (see Table 61-2)
do_partition If TRUE, partition the table used for storage
npartitions Number of partitions to create for the table (see Table 61-3).
partition_key How to partition the table: by item name, by path name, or by GUID (see Table 61-4).
partition_guidi If TRUE, build an index on GUID
partition_pathi If TRUE, build an index on path name
partition_prop If TRUE, partition the properties table

Usage Notes

The procedure executes like a DDL in that it auto-commits before and after its execution.

CREATESTORE Procedure

This procedure creates a new DBFS SFS store owned by the invoking session user.

Syntax

DBMS_DBFS_SFS.CREATESTORE  (
   store_name     IN     VARCHAR2,
   tbl_name       IN     VARCHAR2  DEFAULT NULL,
   tbs_name       in     VARCHAR2  DEFAULT NULL,
   use_bf         in     BOOLEAN   DEFAULT FALSE,
   stgopts        in     VARCHAR2 DEFAULT '');

Parameters

Table 7 CREATESTORE Procedure Parameters

Parameter Description
store_name Name of store
store_type STORETYPE_TAPE or STORETYPE_AMAZONS3
tbl_name Placeholder for the store content cached in database
tbs_name Named tablespace
use_bf If TRUE, a BasicFile LOB is used; otherwise a SecureFile LOB is used.
stgopts Currently non-operational, reserved for future use

DROPFILESYSTEM Procedures

This procedure drops the DBFS SFS store, purging all dictionary information associated with the store, and dropping the underlying file system table.

Syntax

DBMS_DBFS_SFS.DROPFILESYSTEM  (
   schema_name    IN      VARCHAR2 DEFAULT NULL,
   tbl_name       IN      INTEGER);

DBMS_DBFS_SFS.DROPFILESYSTEM  (
   store_name     IN      VARCHAR2);

Parameters

Table 8 DROPFILESYSTEM Procedure Parameters

Parameter Description
schema_name Name of schema
tbl_name Name of tablespace
store_name Name of store path

Usage Notes

INITFS Procedure

This procedure initialize a POSIX file system store. The table associated with the POSIX file system store store_name is truncated and reinitialized with a single “root” directory entry.

Syntax

DBMS_DBFS_SFS.INITFS (
   store_name     IN      VARCHAR2);

Parameters

Table 9 INITFS Procedure Parameters

Parameter Description
store_name Name of store

Usage Notes

The procedure executes like a DDL in that it auto-commits before and after its execution.