Which has the higher priority in your organization: Deploying a new database or securing the ones you already have?
Looking for a website, and resources, dedicated solely to securing Oracle databases? Check out DBSecWorx.
Purpose
This package is a PL/SQL package implementing Simple Oracle Document Access (SODA). SODA allows you to use the Oracle Database as a NoSQL document store. The core abstraction provided by SODA is that of document collections.
The DBMS_SODA package allows you to create, list, and delete document collections from PL/SQL, and to perform CRUD (create, replace, update, delete) operations on documents.All DDL functions are encapsulated within this package.
AUTHID
CURRENT_USER
Constants
Name
Data Type
Value
Content Types
DOC_VARCHAR2
PLS_INTEGER
1
DOC_BLOB
PLS_INTEGER
2
DOC_CLOB
PLS_INTEGER
3
DOC_JSON
PLS_INTEGER
4
Collection Create Modes
CREATE_MODE_DDL
PLS_INTEGER
1
CREATE_MODE_MAP
PLS_INTEGER
2
Data Guide Formats
DATAGUIDE_FORMAT_HIERARCHICAL
PLS_INTEGER
1
DATAGUIDE_FORMAT_FLAT
PLS_INTEGER
2
Data guide Flags
DATAGUIDE_PRETTY
PLS_INTEGER
1
DATAGUIDE_GEOJSON
PLS_INTEGER
2
DATAGUIDE_GATHER_STATS
PLS_INTEGER
4
MV Refresh Constants
MV_REFRESH_ON_STATEMENT
PLS_INTEGER
1
MV_REFRESH_ON_COMMIT
PLS_INTEGER
2
MV_REFRESH_ON_DEMAND
PLS_INTEGER
3
Data Types
CREATE OR REPLACE TYPE SODA_Collection_T FORCE
OID '00000000000000000000000000020017'
authid current_user
AS OPAQUE VARYING (*)
USING library DBMS_SODACOLL_LIB
(...;
/
CREATE OR REPLACE TYPE SYS.SODA_CollName_List_T FORCE
AS TABLE OF NVARCHAR2(255);
/
CREATE OR REPLACE TYPE SODA_Document_T FORCE
OID '00000000000000000000000000020018'
authid current_user
AS OPAQUE VARYING (*)
USING library DBMS_SODADOC_LIB
(...;
/
CREATE OR REPLACE TYPE SODA_Operation_T FORCE
OID '00000000000000000000000000020019'
authid current_user
AS OPAQUE VARYING (*)
USING library DBMS_SODAOPR_LIB
(...;
/
Dependencies
DBMS_SODA_LIB
PLITBLM
SODA_COLLNAME_LIST_T
JSON$USER_COLLECTION_METADATA
SODA_COLLECTION_T
Documented
Yes
First Available
18.1
Security Model
Owned by SYS with EXECUTE granted to PUBLIC
The Library's recommendation is that you revoke EXECUTE from PUBLIC. Everybody with a valid userID does not need to be able to drop collections.
dbms_soda.copy_collection_dependents(
original_collection_name IN NVARCHAR2,
interim_collection_name IN NVARCHAR2,
ignore_errors IN BOOLEAN,
num_errors OUT BINARY_INTEGER);
dbms_soda.finish_redef_collection(
original_collection_name IN NVARCHAR2,
interim_collection_name IN NVARCHAR2,
dml_lock_timeout IN BINARY_INTEGER,
omit_constraint_check IN BOOLEAN);
dbms_soda.start_redef_collection(
original_collection_name IN NVARCHAR2,
interim_collection_name IN NVARCHAR2,
copy_vpd_opt IN BINARY_INTEGER,
refresh_dep_mviews IN VARCHAR2);