Fips 193 - Section 7

7. SQL/ERI Server Profiles

This section specifies two general-purpose functional profiles for partial SQL language support that an implementation may claim conformance to, as follows:


Each general-purpose profile has a number of "level of service" alternatives for data manipulation, schema definiton, transaction management, and binding style. If an implementation conforms to any one of these profiles, then it may claim to be a FIPS conforming SQL/ERI Server. Because many of the alternatives in these profiles identify a proper subset of full-function SQL requirements, conformance to any one of them does not imply conformance to the standard for Database Language SQL [8]. These profiles are intended for use by customers and vendors of products that claim only partial support of an SQL language interface to their data repository.

Any implementation claiming conformace to one of the SQL/ERI Server profiles shall provide a written public statement responding to the ten profile items identified in the following paragraphs. The implementation requirements of each response are given in Subsection 7.1 for Read-Only Servers and in Subsection 7.2 for Read-Write Servers. Syntax for deriving specific SQL-related object identifiers is given in Section 7.3, and popular profiles for CLI and RDA binding alternatives are defined in Sections 7.4 and 7.5, respectively.

An SQL/ERI Server profile shall specify:

1. A base level of SQL data manipulation language (DML) support, by choosing exactly one of the following DML alternatives.
Minimal DML
Entry DML
Transitional DML
Intermediate DML
Full DML

2.A base level of SQL schema definition language (SDL) support, by choosing exactly one of the following SDL alternatives.
No SDL
Minimal SDL
Entry SDL
Transitional SDL
Intermediate SDL
Full SDL

3. A base level of SQL transaction management support, by choosing exactly one of the following transaction management alternatives.
No Transactions
Commit-Rollback
Transaction Mode
Transaction Isolation
Transaction Diagnostics
Constraints

Note: The alternatives for SQL transaction management support are nested. Support for any one of them implies support for all those listed above it. The three alternatives for Transaction Mode, Transaction Isolation, and Transaction Diagnostics support {transaction mode}, {isolation level}, and {diagnostics size}, respectively, in the SQL'92 {set transaction statement}, and the Constraints alternative supports the SQL'92 {set constraints mode statement}.

4. A default isolation level for SQL transaction management, by choosing exactly one of the following default isolation level alternatives.
Read Uncommitted
Read Committed
Repeatable Read
Serializable

Note: If the default isolation level is anything other than Serializable, and if other concurrent users are able to update the database, then read statements may be subject to "dirty read", "non-repeatable read", or "phantom" rows (see Subclause 4.28, "SQL-transactions", of the SQL'92 standard). Even a read-only profile is subject to these phenomena if other concurrent users (not through that profile) can update the database.

5. Which binding styles are supported, by choosing one or more of the following binding style alternatives.
Module
Embedded SQL
Direct Invocation
SQL/CLI
RDA/SQL

Note: It is expected that the SQL/CLI binding style will be the most popular choice for SQL/ERI products within a single local client/server environment and that the Direct Invocation or RDA/SQL binding styles will be the most popular when the server data repository is an isolated node in a wide area client/server environment.

6. For each of the Module, Embedded SQL, or SQL/CLI binding styles chosen, which programming language interfaces are supported, by choosing one or more of the following programming language alternatives.
Ada
C
COBOL
Fortran
MUMPS
Pascal
PL/I
SAMeDL (via module, embedded, or effect)

Note: The Direct Invocation and RDA/SQL binding styles do not require or provide a programming language interface. The preferred language interfaces for SQL/CLI are C and/or COBOL. SAMeDL is an alternative only for the Module binding style (see [21]).

7. Which SQL session management facilities are supported, by specifying one or more of the following session management features.
No Session
Set Catalog
Set Schema
Set Names
Set Session Authorization
Set Time Zone
All Session

Note: SQL session management is defined in Clause 16, "Session management", of SQL'92. If the base level of SQL DML support specified above is Intermediate DML or above, then implementations shall support both Set Session Authorization and Set Time Zone, because they are required Intermediate SQL features. Because of its importance for users, support for "SET SCHEMA {unqualified schema name}" is required if SQL DML support is Transitional DML or above.

8. Which optional extensions are supported, by choosing one or more of the following optional extensions.

No Extensions
SQL Features
Executable SQL/PSM
Definable SQL/PSM
SQL/MM: FullText
SQL/MM: Spatial
SQL/MM: General
ADTs and methods
Object data management
SQL/XA

Note: If SQL Features is chosen, then the implementation shall support the SQL_FEATURES table as specified in Section 15 of FIPS SQL (see [3]); if Executable SQL/PSM is chosen, then the implementation shall support {routine invocation} and the ROUTINES base table as specified in the SQL/PSM specification (see [11]); if Definable SQL/PSM is chosen, then the implementation shall support all requirements of the SQL/PSM specification (see [11]); if SQL/MM: Full Text, SQL/MM: Spatial, or SQL/MM: General is chosen, then the implementation shall point to the then current SQL/MM specification (see Section 5.3 above and [13]) and explicitly indicate which Parts, and which conformance alternatives within each Part, are supported; if ADTs and methods is chosen, then the implementation shall support the appropriate Abstract Data Type clauses in the then current SQL3 specification (see Section 5.4 above and [12]); if Object data management is chosen, then the implementation shall support the appropriate object management clauses in the then current SQL3 specification (see Section 5.5 above and [12]); if SQL/XA is chosen, then the implementation shall support the SQL specializaion of the X/Open XA interface specification (see Section 5.6 above and [12]).

9. If the RDA/SQL binding style is chosen, then which underlying communications protocols are supported, by choosing one or more of the following alternatives.
Minimal OSI (MOSI) -- see new OIW 1994 agreements
Full Stack OSI -- see [16] for 1992 OIW stable agreements
Internet RFC 1006 -- see unpublished NIST RDA TestBed Agreements
Other Transport -- give name & version of transport mechanism used

Note: All of the above depend upon the International Standard for Remote Database Access (RDA) [9] in their upper layers; however, they may differ in their directory services and in their services for making an association at the application layer and in how that association is propagated through to the transport and physical layers. It is expected that the Internet RFC 1006 alternative will be the most popular in the near term (because the Internet is so pervasive) for ad hoc associations among RDA clients and servers in a wide area network.

10. If the RDA/SQL binding style is chosen, then which RDA options are supported, by choosing one or more of the following (see Section 6.5 above).

None
RDA Stored Execution
RDA Status
RDA Cancel
RDA TP Application Context

7.1 SQL/ERI Read-Only Server

This profile specifies a read-only interface to a data repository. It does not include support for any of the Schema Definition or Schema Manipulation SQL language elements specified in Clause 11 of the SQL'92 standard, or for any of the SQL data change statements, i.e. Insert, Update, or Delete, specified in Clause 13. It is most likely that the level of support specified for SQL schema definition language will be "No SDL". Depending upon the various base level attributes specified, this profile may have Information Schema requirements that differ from those specified in SQL'92 [8] or FIPS SQL [3].

Schema Definition Rules

1.The SQL/ERI Read-Only Server profile assumes that all schema objects are owned by a user different from the user accessing the repository through this profile, and that appropriate privileges have been granted to all accessing users. If the SQL/CLI binding style is identified, then users are made known to the system using the Connect routine specified in Subclause 6.10, "Connect", of [10]. If the RDA/SQL binding style is identified, then users are made known to the system using the NIST OIW RDA Testbed implementor agreements. Otherwise, as with the SQL'92 standard, the particular method by which users are made known to the system is implementation-defined.

2. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-Only Server profile is Minimal DML, Entry DML, or Transitional DML, then the implicit schema definition may contain some {table constraint}s, or various {schema element}s, that are not visible to the user but whose existence may affect the semantics of certain statements.

3. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-Only Server profile is Minimal DML or Entry DML, and if a table with table name TN is visible in the Information Schema TABLES view for a user with user name UN, then one of the following {grant statement}s, executed by the owner of table TN, is implicit:

GRANT SELECT ON TABLE TN TO UN, or
GRANT SELECT ON TABLE TN TO PUBLIC

It doesn't make any difference to a read-only user which of these statements is implicit, so the choice is implementation-dependent.

4.Information about schema objects, privileges, and constraints are made visible to potential users through the Information Schema views, subject to the Information Schema Rules specified below.

Data Manipulation Rules

1. If the Module, Embedded SQL, or RDA/SQL binding styles are specified, then the SQL/ERI Read-Only Server profile requires support for the following SQL statements, as specified in Clause 13, "Data Manipulation", in the SQL'92 standard, with any restrictions specified by the given level of SQL data manipulation language support and subject to other rules specified in this profile.

{declare cursor}
{open statement}
{fetch statement}
{close statement}
{select statement: single row}

2. If the Direct Invocation binding style is specified, then the SQL/ERI Read-Only Server profile requires support for the following {direct SQL statement}s listed in Clause 20, "Direct invocation of SQL", in the SQL'92 standard, with any restrictions specified by the given level of SQL data manipulation language support and subject to other rules specified in this profile:

{direct select statement: multiple rows}

3. If the SQL/CLI binding style is specified, then the SQL/ERI Read-Only Server profile requires support for the following {preparable statement}s listed in Subclause 17.6 of the SQL'92 standard, with any restrictions specified by the given level of SQL data manipulation language support and subject to other rules specified in this profile:

{dynamic single row select statement}
{dynamic select statement}

4.If an SQL/ERI Server implementation at the Minimal SDL level or below chooses not to provide support for null values (see item 4 of Section 4.1), then it may raise an implementation-defined exception in any SQL statement that attempts to process null values.

Transaction Management Rules

1. If the level of SQL transaction management support is "No Transactions", then SQL transaction management is not supported for any binding style. Otherwise, Commit and Rollback transaction management is supported depending on the specified binding style as follows.

Case:
a.If the Module, Embedded SQL, or Direct Invocation binding style is specified, then the requirements of the SQL {commit statement} and the SQL {rollback statement} from Clause 14, "Transaction management", of the SQL'92 standard [8] apply to this profile.

b. If the SQL/CLI binding style is specified, then the requirements of the routines for transaction management (e.g. EndTran and Cancel) as specified in the SQL/CLI specification [10] apply to this profile.

c. If the RDA/SQL binding style is specified, then the requirements for transaction management in the RDA Basic Application Context, as specified in the RDA standard [9], with implementor agreements specified in [16], apply to this profile.

d. If the RDA option for TP Application Context is specified, then the requirements for the TP Application Context, as specified in the RDA standard [9], with implementor agreements for Distributed Transaction Processing as specified in [16], apply to this profile.

Note: The purpose of requiring support for SQL Commit and Rollback in Read-Only profiles is to give the user a standard way to signal to the system that a read-only transaction has completed. This has semantic implications only if other concurrent users (not through this profile) are able to update the database.

2. If the level of SQL transaction management support is "No Transactions", and if the default isolation level is XXX, then the {set transaction statement}

SET TRANSACTION READ ONLY, ISOLATION LEVEL XXX

is implicit for the single implicit transaction of any SQL-session through this profile.
3. If the level of SQL transaction management support is Commit-Rollback, and if the default isolation level is XXX, then the {set transaction statement}

SET TRANSACTION READ ONLY, ISOLATION LEVEL XXX

is implicit for every transaction of any SQL-session through this profile.

4. If the level of SQL transaction management support is Transaction Mode or above, then this profile includes support for the {transaction access mode} alternative of the SQL {set transaction statement} as specified in Subclause 14.1 of the SQL'92 standard; however, the {transaction access mode} shall always be READ ONLY.

5. If the level of SQL transaction management support is Transaction Isolation or above, then this profile includes support for the {isolation level} alternative of the SQL {set transaction statement} as specified in Subclause 14.1 of the SQL'92 standard. If the default isolation level is XXX, and if an explicit {set transaction statement} with an explicit {isolation level} is not specified for a transaction of any SQL-session through this profile, then the {set transaction statement}

SET TRANSACTION READ ONLY, ISOLATION LEVEL XXX

is implicit for that transaction.

6. If the level of SQL transaction management support is Transaction Diagnostics or above, then this profile includes support for the {diagnostics size} alternative of the SQL {set transaction statement} as specified in Subclause 14.1 of the SQL'92 standard.

7. If the level of SQL transaction management support is Constraints, then this profile includes support for the {set constraints mode statement} as specified in Subclause 14.2 of the SQL'92 standard.

8. If the optional extension for SQL/XA is specified, then the implementation shall support the SQL specializaion of the X/Open XA interface specification (see Section 5.6 above and [12]).

Connection Management Rules

1. If the Module, Embedded SQL, or Direct Invocation binding styles are specified, and if the level of SQL data manipulation language support is Full DML, then the SQL/ERI Read-Only Server profile requires support for {SQL connection statement}s as specified in Clause 15, "Connection management", of the SQL'92 standard. If the level of SQL data manipulation language support is anything other than Full SQL, then there is no requirement to support any {SQL connection statement} for these binding styles.

2. If the SQL/CLI binding style is specified, then the requirements of the routines for connection management (i.e. Connect, Disconnect) as specified in the SQL/CLI specification [10] apply to this profile.

3. If the RDA/SQL binding style is specified, then the requirements of RDA Dialogue Management and RDA Resource Handling as specified in the RDA standard [9], with implementor agreements specified in [16], apply to this profile.

Session Management Rules

1. If the indicated SQL session management support is "No Session", then SQL session management is not supported for any binding style. Otherwise, for each feature identified, this profile supports the requirements of that feature as identified in Clause 16, "Session management", of the SQL'92 standard. If the indicated SQL session management support is "All Session", then all features of Clause 16 are supported in this profile.

2. If SQL data manipulation language support specifies Transitional DML or above, then support for "SET SCHEMA {unqualified schema name}" is implicit in this profile.

3. If SQL data manipulation language support specifies Intermediate DML or above, then support for "SET SCHEMA {unqualified schema name}", SET SESSION AUTHORIZATION, and SET TIME ZONE is implicit in this profile.

4. If SQL data manipulation language support specifies Full DML, then support for "All Session" is implicit in this profile.

Dynamic SQL and Diagnostics Management Rules

1. If SQL data manipulation language support specifies Minimal DML or Entry SQL, then support for SQL statements in Clause 17, "Dynamic SQL", and Clause 18, "Diagnostics management", is not required.

2. If SQL data manipulation language support specifies Transitional DML or above, then support for all read-only provisions of Clause 17, "Dynamic SQL", and Clause 18, "Diagnostics management", with any restrictions identified in the Leveling Rules for higher levels of DML, is required for all implementations that claim that level of DML support.

Information Schema Rules

1. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-Only Server profile is Minimal DML or Entry DML, then support for the following Information Schema views, as specified in Clause 21, "Information Schema and Definition Schema", of the SQL'92 standard, is required:

TABLES
COLUMNS

Note: See FIPS 127-2 Errata for handling "long" names.

2. If an SQL/ERI Server implementation at the Minimal SDL level or below chooses not to provide support for null values (see item 4 of Section 4.1), then it shall provide an implementation-defined conversion of would-be null values in Information Schema tables to an appropriate non-null value.

3. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-Only Server profile is Transitional DML, then support for the following Information Schema views, as specified in Clause 21, "Information Schema and Definition Schema", of the SQL'92 standard, is required:

TABLES
VIEWS
COLUMNS
TABLE_PRIVILEGES
COLUMN_PRIVILEGES
USAGE_PRIVILEGES

Note: See FIPS 127-2 Errata for handling "long" names.

4. If the level of SQL data manipulation language support claimed for the SQL/ERI Read-Only Server profile is Intermediate DML or Full DML, then an implementation conforming to this profile shall provide all of the Information Schema views required by the SQL'92 standard for Intermediate SQL or Full SQL, respectively. In many cases some of these tables may be empty, or trivial, but a conforming SQL/ERI Server at these SQL data manipulation language levels is required to support them to reflect an accurate picture of the implicit schema definition.

7.2 SQL/ERI Read-Write Server

This profile specifies a read-write interface to a data repository. It requires support for the SQL data change statements, i.e. Insert, Update, and Delete, specified in Clause 13, "data manipulation", of the SQL'92 standard. Depending upon the level of SQL schema definition language support specified, it may or may not require support for SQL schema definition or schema manipulation statements. Depending upon the various base level attributes specified, this profile may have Information Schema requirements that differ from those specified in SQL'92 [8] or FIPS SQL [3].

Schema Definition Rules

1. The SQL/ERI Read-Write Server profile assumes that some schema objects are owned by a user different from the user accessing the repository through this profile, and that appropriate privileges have been granted to all accessing users. If the SQL/CLI binding style is identified, then users are made known to the system using the Connect routine specified in Subclause 6.10, "Connect", of [10]. If the RDA/SQL binding style is identified, then users are made known to the system using the NIST OIW RDA Testbed implementor agreements. Otherwise, as with the SQL'92 standard, the particular method by which users are made known to the system is implementation-defined.

2. If the level of SQL data manipulation language support claimed for the SQL/ERI Read- Write Server profile is Minimal DML, Entry DML, or Transitional DML, then the implicit schema definition may contain some {table constraint}s, or various {schema element}s, that are not visible to the user but whose existence may affect the semantics of certain statements.

3. Information about schema objects, privileges, and constraints are made visible to potential users through the Information Schema views, subject to the Information Schema Rules specified below.

4.If the level of SQL schema definition language support is different from "No SDL", then

Case:

a. If the Module, Embedded SQL, or RDA/SQL binding styles are specified, then the SQL/ERI Read-Write Server profile requires support for all of the SQL data definition and manipulation statements, as specified in Clause 11, "Schema definition and manipulation", of the SQL'92 standard, with any restrictions specified by the given level of SQL schema definition language support and subject to other rules specified in this profile.

b. If the Direct Invocation binding style is specified, then the SQL/ERI Read-Write Server profile requires support for the following {direct SQL statement}s listed in Clause 20, "Direct invocation of SQL", in the SQL'92 standard, with any restrictions specified by the given level of SQL schema definition language support and subject to other rules specified in this profile:

{SQL schema statement}

c. If the SQL/CLI binding style is specified, then the SQL/ERI Read-Write Server profile requires support for the following {preparable statement}s listed in Subclause 17.6 of the SQL'92 standard, with any restrictions specified by the given level of SQL schema defintion language support and subject to other rules specified in this profile:

{preparable SQL schema statement}

Data Manipulation Rules

1.If the Module, Embedded SQL, or RDA/SQL binding styles are specified, then the SQL/ERI Read-Write Server profile requires support for the following SQL statements, as specified in Clause 13, "Data Manipulation", in the SQL'92 standard, with any restrictions specified by the given level of SQL data manipulation language support and subject to other rules specified in this profile.

{declare cursor}
{open statement}
{fetch statement}
{close statement}
{select statement: single row}
{delete statement: positioned}
{delete statement: searched}
{insert statement}
{update statement: positioned}
{update statement: searched}
{temporary table declaration} -- Full DML only

2. If the Direct Invocation binding style is specified, then the SQL/ERI Read-Only Server profile requires support for the following {direct SQL statement}s listed in Clause 20, "Direct invocation of SQL", in the SQL'92 standard, with any restrictions specified by the given level of SQL data manipulation language support and subject to other rules specified in this profile:

{direct select statement: multiple rows}
{delete statement: searched}
{insert statement}
{update statement: searched}

3. If the SQL/CLI binding style is specified, then the SQL/ERI Read-Write Server profile requires support for the following {preparable statement}s listed in Subclause 17.6 of the SQL'92 standard, with any restrictions specified by the given level of SQL data manipulation language support and subject to other rules specified in this profile:

{dynamic single row select statement}
{dynamic select statement}
{delete statement: searched}
{insert statement}
{update statement: searched}
{preparable dynamic delete statement: positioned}
{preparable dynamic update statement: positioned}

4. If an SQL/ERI Server implementation at the Minimal SDL level or below chooses not to provide support for null values (see item 4 of Section 4.1), then it may raise an implementation- defined exception in any SQL statement that attempts to process null values.

Transaction Management Rules

1. The level of SQL transaction management support shall not be "No Transactions". In all cases, SQL Commit and Rollback transaction management is supported as defined by the specified binding style.

Case:
a. If the Module, Embedded SQL, or Direct Invocation binding style is specified, then the requirements of the SQL {commit statement} and the SQL {rollback statement} from Clause 14, "Transaction management", of the SQL'92 standard [8] apply to this profile.

b. If the SQL/CLI binding style is specified, then the requirements of the routines for transaction management (e.g. EndTran and Cancel) as specified in the SQL/CLI specification [10] apply to this profile.

c. If the RDA/SQL binding style is specified, then the requirements for transaction management in the RDA Basic Application Context, as specified in the RDA specification [9], with implementor agreements specified in [16], apply to this profile.

d. If the RDA option for TP Application Context is specified, then the requirements for the TP Application Context, as specified in the RDA standard [9], with implementor agreements for Distributed Transaction Processing as specified in [16], apply to this profile.

2. If the level of SQL transaction management support is Commit-Rollback, then the {set transaction statement}

SET TRANSACTION READ WRITE, ISOLATION LEVEL SERIALIZABLE

is implicit for every transaction of any SQL-session through this profile.

3. If the level of SQL transaction management support is Transaction Mode or above, then this profile includes support for the {transaction access mode} alternative of the SQL {set transaction statement} as specified in Subclause 14.1 of the SQL'92 standard.

Case:

a. If an explicit {set transaction statement} with an explicit {tranaction access mode} is not specifed for a transaction of any SQL-session through this profile, then the {set transaction statement}

SET TRANSACTION READ WRITE, ISOLATION LEVEL SERIALIZABLE

is implicit for that transaction.

b. If an explicit {set transaction statement} with a {tranaction access mode} of READ ONLY is specifed for a transaction of any SQL-session through this profile, and if the default isolation level is XXX, then the {set transaction statement}

SET TRANSACTION READ ONLY, ISOLATION LEVEL XXX

is implicit for that transaction.

4. If the level of SQL transaction management support is Transaction Isolation or above, then this profile includes support for the {isolation level} alternative of the SQL {set transaction statement} as specified in Subclause 14.1 of the SQL'92 standard. If an explicit {set transaction statement} with a {tranaction access mode} of READ ONLY is specifed, and if an explicit {set transaction statement} with an explicit {isolation level} is not specified for a transaction of any SQL-session through this profile, and if the default isolation level is XXX, then the {set transaction statement}

SET TRANSACTION READ ONLY, ISOLATION LEVEL XXX

is implicit for that transaction.

5. If the level of SQL transaction management support is Transaction Diagnostics or above, then this profile includes support for the {diagnostics size} alternative of the SQL {set transaction statement} as specified in Subclause 14.1 of the SQL'92 standard.

6. If the level of SQL transaction management support is Constraints, then this profile includes support for the {set constraints mode statement} as specified in Subclause 14.2 of the SQL'92 standard.

7. If the optional extension for SQL/XA is specified, then the implementation shall support the SQL specializaion of the X/Open XA interface specification (see Section 5.6 above and [12]).

Connection Management Rules

1. If the Module, Embedded SQL, or Direct Invocation binding styles are specified, and if the level of SQL data manipulation language support is Full DML, then the SQL/ERI Read-Write Server profile requires support for {SQL connection statement}s as specified in Clause 15, "Connection management", of the SQL'92 standard. If the level of SQL data manipulation language support is anything other than Full SQL, then there is no requirement to support any {SQL connection statement} for these binding styles.

2. If the SQL/CLI binding style is specified, then the requirements of the routines for connection management (i.e. Connect, Disconnect) as specified in the SQL/CLI specification [10] apply to this profile.

3. If the RDA/SQL binding style is specified, then the requirements of RDA Dialogue Management and RDA Resource Handling as specified in the RDA standard [9], with implementor agreements specified in [16], apply to this profile.

Session Management Rules

1. If the indicated SQL session management support is "No Session", then SQL session management is not supported for any binding style. Otherwise, for each feature identified, this profile supports the requirements of that feature as identified in Clause 16, "Session management", of the SQL'92 standard. If the indicated SQL session management support is "All Session", then all features of Clause 16 are supported in this profile.

2. If SQL data manipulation language support specifies Transitional DML or above, then support for "SET SCHEMA {unqualified schema name}" is implicit in this profile.

3. If SQL data manipulation language support specifies Intermediate DML or above, then support for "SET SCHEMA {unqualified schema name}", SET SESSION AUTHORIZATION, and SET TIME ZONE is implicit in this profile.

4. If SQL data manipulation language support specifies Full DML, then support for "All Session" is implicit in this profile.

Dynamic SQL and Diagnostics Management Rules

1. If SQL data manipulation language support specifies Minimal DML or Entry SQL, then support for SQL statements in Clause 17, "Dynamic SQL", and Clause 18, "Diagnostics management", is not required.

2. If SQL data manipulation language support specifies Transitional DML or above, then support for all provisions of Clause 17, "Dynamic SQL", and Clause 18, "Diagnostics management", with any restrictions identified in the Leveling Rules for higher levels of DML, is required for all implementations that claim that level of DML support.

Information Schema Rules

1. If the level of SQL data manipulation language support claimed for the SQL/ERI Read- Write Server profile is Minimal DML or Entry DML, then support for the following Information Schema views, as specified in Clause 21, "Information Schema and Definition Schema", of the SQL'92 standard, is required:

TABLES
VIEWS
COLUMNS
TABLE_PRIVILEGES
COLUMN_PRIVILEGES

Note: See FIPS 127-2 Errata for handling "long" names.

2. If an SQL/ERI Server implementation at the Minimal SDL level or below chooses not to provide support for null values (see item 4 of Section 4.1), then it shall provide an implementation-defined conversion of would-be null values in Information Schema tables to an appropriate non-null value.

3. If the level of SQL data manipulation language support claimed for the SQL/ERI Read- Write Server profile is Transitional DML, then support for the following Information Schema views, as specified in Clause 21, "Information Schema and Definition Schema", of the SQL'92 standard, is required:

TABLES
VIEWS
COLUMNS
TABLE_PRIVILEGES
COLUMN_PRIVILEGES
USAGE_PRIVILEGES

Note: See FIPS 127-2 Errata for handling "long" names.

4. If the level of SQL data manipulation language support claimed for the SQL/ERI Read- Write Server profile is Intermediate DML or Full DML, then an implementation conforming to this profile shall provide all of the Information Schema views required by the SQL'92 standard for Intermediate SQL or Full SQL, respectively. In many cases some of these tables may be empty, or trivial, but a conforming SQL/ERI Server at these SQL data manipulation language levels is required to support them to reflect an accurate picture of the implicit schema definition.

Object Identifiers for SQL/ERI Server profiles

The National Institute of Standards and Technology is the registration authority for the following node in the joint ISO/IEC and CCITT branch of the international object-identifier hierarchical name tree (see CCITT X.660 or ISO/IEC 9834-1):

{ joint-iso-ccitt (2) country (16) us (840) gov (101) sql (4) }

It is NIST's intention to use this node to register objects derived from NIST publications related to Database Language SQL, including profiles defined in this FIPS for SQL Environments. Other registered objects will include FIPS SQL profiles, FIPS SQL test suite reports, FIPS SQL certificates, client-side profiles in an SQL environment, SQL/ERI Client profiles, a register of SQL environments, and possibly others. For information on the current state of this register, including its on-line availability through an SQL/ERI Read-Only RDA Server interface, contact FIPS SQL registration authority personnel at telephone +1-301-975-3251 or send e-mail to LGallagher@nist.gov.

The following syntactic productions yield object identifiers for SQL-related objects. See Clause 3.2, "Notation", of ISO/IEC 9075:1992 for definition of the syntactic notation used.

{nist sql-related object identifier} ::= {nist sql-related provenance} {nist sql-related object}

{nist sql-related provenance} ::= {joint-iso-ccitt} {country} {us} {gov} {sql}

{joint-iso-ccitt} ::= 2 | joint-iso-ccitt | joint-iso-ccitt {left paren} 2 {right paren}
{country} ::= 16 | country | country {left paren} 16 {right paren}
{us} ::= 840 | us | us {left paren} 840 {right paren}
{gov} ::= 101 | gov | gov {left paren} 101 {right paren}
{sql} ::= 4 | sql | sql {left paren} 4 {right paren}

{nist sql-related object} ::=
{fips 127 profile}
| {fips 127 certificate}
| {fips 193 client-side profile}
| {fips 193 sql-eri-client profile}
| {fips 193 sql-eri-server profile}
| {nist sql test report}
| {nist sql environment}

{fips 127 profile} ::= {fips 127 profile designator} {fips 127 profile identifier}
{fips 127 profile designator} ::= 1 | sql-profile {left paren} 1 {right paren}
{fips 127 profile identifier} ::= {SQL variant}

Note: {SQL variant} is defined in Clause 3.4, "Object identifier for SQL", of Reference [8], with the following extension to accommodate the FIPS SQL definition of Transitional SQL.

{SQL conformance} ::= {low} | {transitional} | {intermediate} | {high}
{transitional} ::= 3 | Transitional {left paren} 3 {right paren}

{fips 127 certificate} ::= {fips 127 certificate register} [ {fips 127 certificate identifier} ]
{fips 127 certificate register} ::= 2 | nist-sql-cert {left paren} 2 {right paren}
{fips 127 certificate identifier} ::= {years value} {certificate number}
{years value} ::= !!Defined in ISO/IEC 9075 to be an {unsigned integer}
{certificate number} ::= {unsigned integer}

{fips 193 client-side profile} ::= {fips 193 client profile designator} {fips 193 client profile identifier}
{fips 193 client profile designator} ::= 3 | env-client {left paren} 3 {right paren}
{fips 193 client profile identifier} ::= !! To be defined in a future NIST publication.

{fips 193 sql-eri-client profile} ::= {eri-client profile designator} {eri-client profile identifier}
{eri-client profile designator} ::= 4 | eri-client {left paren} 4 {right paren}
{eri-client profile identifier} ::= !! To be defined in a future NIST publication.

{fips 193 sql-eri-server profile} ::=
{eri-server profile designator}
{eri-server profile identifier}
[ {fips 193 options list} ]

{eri-server profile designator} ::= 5 | eri-server {left paren} 5 {right paren}
{eri-server profile identifier} ::= !! See below.
{fips 193 options list} ::= !! See below.

{nist sql test report} ::= {nist sql test report register} [ {nist vsr identifier} ]
{nist sql test report register} ::= 6 | nist-vsr {left paren} 6 {right paren}
{nist vsr identifier} ::= {years value} {vsr number}
{years value} ::= !!Defined in ISO/IEC 9075 to be an {unsigned integer}
{vsr number} ::= {unsigned integer}

Note: If a NIST validation summary report (VSR) results in the award of a certificate for conformance to FIPS SQL, then the {years value} and the {certificate number} of an entry in the {fips 127 certificate} register will match the {years value} and the {vsr number}, respectively, of an entry in the {nist sql test report} register.

{nist sql environment} ::= {nist sql environment register} [ {sql environment identifier} ]
{nist sql environment register} ::= 7 | sql-env {left paren} 7 {right paren}
{sql environment identifier} ::= !! To be defined in a future NIST publication.

{eri-server profile identifier} ::=
{eri module-ro server}
| {eri module-rw server}
| {eri embedded-ro server}
| {eri embedded-rw server}
| {eri direct-ro server}
| {eri direct-rw server}
| {eri cli-ro server}
| {eri cli-rw server}
| {eri rda-ro server}
| {eri rda-rw server}
| {eri cli-ro1 server}
| {eri cli-rw1 server}
| {eri rda-ro1 server}
| {eri rda-rw1 server}
| {eri cli-ro2 server}
| {eri cli-rw2 server}
| {eri rda-ro2 server}
| {eri rda-rw2 server}
| {eri cli-ro3 server}
| {eri cli-rw3 server}
| {eri rda-ro3 server}
| {eri rda-rw3 server}
| {eri cli-ro4 server}
| {eri cli-rw4 server}
| {eri rda-ro4 server}
| {eri rda-rw4 server}

{eri module-ro server} ::= 1 | mod-ro {left paren} 1 {right paren}
{eri module-rw server} ::= 2 | mod-rw {left paren} 2 {right paren}
{eri embedded-ro server} ::= 3 | emb-ro {left paren} 3 {right paren}
{eri embedded-rw server} ::= 4 | emb-rw {left paren} 4 {right paren}
{eri direct-ro server} ::= 5 | dir-ro {left paren} 5 {right paren}
{eri direct-rw server} ::= 6 | dir-rw {left paren} 6 {right paren}
{eri cli-ro server} ::= 7 | cli-ro {left paren} 7 {right paren}
{eri cli-rw server} ::= 8 | cli-rw {left paren} 8 {right paren}
{eri rda-ro server} ::= 9 | rda-ro {left paren} 9 {right paren}
{eri rda-rw server} ::= 10 | rda-rw {left paren} 10 {right paren}
{eri cli-ro1 server} ::= 11 | cli-ro1 {left paren} 11 {right paren}
{eri cli-rw1 server} ::= 12 | cli-rw1 {left paren} 12 {right paren}
{eri rda-ro1 server} ::= 13 | rda-ro1 {left paren} 13 {right paren}
{eri rda-rw1 server} ::= 14 | rda-rw1 {left paren} 14 {right paren}
{eri cli-ro2 server} ::= 15 | cli-ro2 {left paren} 15 {right paren}
{eri cli-rw2 server} ::= 16 | cli-rw2 {left paren} 16 {right paren}
{eri rda-ro2 server} ::= 17 | rda-ro2 {left paren} 17 {right paren}
{eri rda-rw2 server} ::= 18 | rda-rw2 {left paren} 18 {right paren}
{eri cli-ro3 server} ::= 19 | cli-ro3 {left paren} 19 {right paren}
{eri cli-rw3 server} ::= 20 | cli-rw3 {left paren} 20 {right paren}
{eri rda-ro3 server} ::= 21 | rda-ro3 {left paren} 21 {right paren}
{eri rda-rw3 server} ::= 22 | rda-rw3 {left paren} 22 {right paren}
{eri cli-ro4 server} ::= 23 | cli-ro4 {left paren} 23 {right paren}
{eri cli-rw4 server} ::= 24 | cli-rw4 {left paren} 24 {right paren}
{eri rda-ro4 server} ::= 25 | rda-ro4 {left paren} 25 {right paren}
{eri rda-rw4 server} ::= 26 | rda-rw4 {left paren} 26 {right paren}

Note: Each of the first ten profile identifiers above identifies a family of profiles, with support for the specified binding alternative and the specified read-only or read-write alternative; an explicit profile is given by adding the optional {fips 193 options list}. In each case, an implementation of the profile is only required to satisfy the minimal conformance options specified herein, plus the explicitly specified options. The remaining profile identifiers identify explicit profiles as defined in Sections 7.4 and 7.5 below; they may also include the optional {fips 193 options list} to identify support for SQL features above the base requirements of that profile. Other profile identifiers and profiles may be added later, as appropriate. Requests to add new profiles to this register may be addressed to the NIST Computer Systems Laboratory, attention: SQL Environment profiles.

{fips 193 options list} ::= { {fips 193 option} } ...

{fips 193 option} ::=
{dml option}
| {sdl option}
| {transaction option}
| {isolation option}
| {additional binding option}
| {language option}
| {session option}
| {extension option}
| {protocol option}
| {rda option}

{dml option} ::=
{minimal dml}
| {entry dml}
| {transitional dml}
| {intermediate dml}
| {full dml}

{minimal dml} ::= 110 | dml-min {left paren} 110 {right paren}
{entry dml} ::= 120 | dml-ent {left paren} 120 {right paren}
{transitional dml} ::= 130 | dml-tran {left paren} 130 {right paren}
{intermediate dml} ::= 140 | dml-int {left paren} 140 {right paren}
{full dml} ::= 150 | dml-full {left paren} 150 {right paren}

{sdl option} ::=
{no sdl}
| {minimal sdl}
| {entry sdl}
| {transitional sdl}
| {intermediate sdl}
| {full sdl}

{no sdl} ::= 200 | sdl-none {leftparen} 200 {right paren}
{minimal sdl} ::= 210 | sdl-min {left paren} 210 {right paren}
{entry sdl} ::= 220 | sdl-ent {left paren} 220 {right paren}
{transitional sdl} ::= 230 | sdl-tran {left paren} 230 {right paren}
{intermediate sdl} ::= 240 | sdl-int {left paren} 240 {right paren}
{full sdl} ::= 250 | sdl-full {left paren} 250 {right paren}

{transaction option} ::=
{no transaction}
| {commit-rollback}
| {transaction mode}
| {transaction isolation}
| {transaction diagnostics}
| {transaction constraints}

{no transaction} ::= 300 | tx-none {leftparen} 300 {right paren}
{commit-rollback} ::= 310 | tx-cr {left paren} 310 {right paren}
{transaction mode} ::= 320 | tx-tm {left paren} 320 {right paren}
{transaction isolation} ::= 330 | tx-ti {left paren} 330 {right paren}
{transaction diagnostics} ::= 340 | tx-td {left paren} 340 {right paren}
{transaction constraints} ::= 350 | tx-tc {left paren} 350 {right paren}

{isolation option} ::=
{read uncommitted}
| {read committed}
| {repeatable read}
| {serializable}

{read uncommitted} ::= 410 | isol-ru {left paren} 410 {right paren}
{read committed} ::= 420 | isol-rc {left paren} 420 {right paren}
{repeatable read} ::= 430 | isol-rr {left paren} 430 {right paren}
{serializable} ::= 440 | isol-sr {left paren} 440 {right paren}

{additional binding option} ::=
{no additions}
| {plus module}
| {plus embedded}
| {plus direct}
| {plus cli}
| {plus rda}

{no additions} ::= 500 | bind-none {left paren} 500 {right paren}
{plus module} ::= 510 | bind-mod {left paren} 510 {right paren}
{plus embedded} ::= 520 | bind-emb {left paren} 520 {right paren}
{plus direct} ::= 530 | bind-dir {left paren} 530 {right paren}
{plus cli} ::= 540 | bind-cli {left paren} 540 {right paren}
{plus rda} ::= 550 | bind-rda {left paren} 550 {right paren}

{language option} ::=
{language not applicable}
| {embedded ada}
| {embedded c}
| {embedded cobol}
| {embedded fortran}
| {embedded mumps}
| {embedded pascal}
| {embedded pl1}
| {module ada}
| {module c}
| {module cobol}
| {module fortran}
| {module mumps}
| {module pascal}
| {module pl1}
| {cli ada}
| {cli c}
| {cli cobol}
| {cli fortran}
| {cli mumps}
| {cli pascal}
| {cli pl1}
| {samedl via module mapping}
| {samedl via embedded mapping}
| {samedl via effects}

{language not applicable} ::= 600 | lang-none | lang-none {left paren} 600 {right paren}
{embedded ada} ::= 621 | emb-ada {left paren} 621 {right paren}
{embedded c} ::= 622 | emb-c {left paren} 622 {right paren}
{embedded cobol} ::= 623 | emb-cob {left paren} 623 {right paren}
{embedded fortran} ::= 624 | emb-for {left paren} 624 {right paren}
{embedded mumps} ::= 625 | emb-mum {left paren} 625 {right paren}
{embedded pascal} ::= 626 | emb-pas {left paren} 626 {right paren}
{embedded pl1} ::= 627 | emb-pl1 {left paren} 627 {right paren}
{module ada} ::= 641 | mod-ada {left paren} 641 {right paren}
{module c} ::= 642 | mod-c {left paren} 642 {right paren}
{module cobol} ::= 643 | mod-cob {left paren} 643 {right paren}
{module fortran} ::= 644 | mod-for {left paren} 644 {right paren}
{module mumps} ::= 645 | mod-mum {left paren} 645 {right paren}
{module pascal} ::= 646 | mod-pas {left paren} 646 {right paren}
{module pl1} ::= 647 | mod-pl1 {left paren} 647 {right paren}
{cli ada} ::= 661 | cli-ada {left paren} 661 {right paren}
{cli c} ::= 662 | cli-c {left paren} 662 {right paren}
{cli cobol} ::= 663 | cli-cob {left paren} 663 {right paren}
{cli fortran} ::= 664 | cli-for {left paren} 664 {right paren}
{cli mumps} ::= 665 | cli-mum {left paren} 665 {right paren}
{cli pascal} ::= 666 | cli-pas {left paren} 666 {right paren}
{cli pl1} ::= 667 | cli-pl1 {left paren} 667 {right paren}
{samedl via module mapping} ::= 610 | samedl-mod {left paren} 610 {right paren}
{samedl via embedded mapping} ::= 611 | samedl-emb {left paren} 611 {right paren}
{samedl via effects} ::= 612 | samedl-eff {left paren} 612 {right paren}

{session option} ::=
{no session}
| {set catalog}
| {set schema}
| {set names}
| {set session authorization}
| {set time zone}
| {all session}

{no session} ::= 700 | sess-none {leftparen} 700 {right paren}
{set catalog} ::= 710 | sess-cat {left paren} 710 {right paren}
{set schema} ::= 720 | ses-schema {left paren} 720 {right paren}
{set names} ::= 730 | sess-names {left paren} 730 {right paren}
{set session authorization} ::= 740 | sess-auth {left paren} 740 {right paren}
{set time zone} ::= 750 | sess-tz {left paren} 750 {right paren}
{all session} ::= 760 | sess-all {left paren} 760 {right paren}

{extension option} ::=
{no extensions}
| {sql features table}
| {executable sql psm}
| {definable sql psm}
| {sql multimedia full text}
| {sql multimedia spatial}
| {sql multimedia general}
| {complex number extension}
| {vector extension}
| {numerics extension}
| {boolean extension}
| {abstract data type extension}
| {object data management}
| {sql xa-interface routines}

{no extensions} ::= 800 | ext-none {left paren} 800 {right paren}
{sql features table} ::= 810 | ext-features {left paren} 810 {right paren}
{executable sql psm} ::= 820 | psm-call {left paren} 820 {right paren}
{definable sql psm} ::= 830 | psm-all {left paren} 830 {right paren}
{sql multimedia: full text} ::= 840 | ext-fulltext {left paren} 840 {right paren}
{sql multimedia: spatial} ::= 850 | ext-spatial {left paren} 850 {right paren}
{sql multimedia: general} ::= 860 | ext-general {left paren} 860 {right paren}
{complex number extension} ::= 861 | ext-complex {left paren} 861 {right paren}
{vector extension} ::= 862 | ext-vector {left paren} 862 {right paren}
{numerics extension} ::= 863 | ext-numerics {left paren} 863 {right paren}
{boolean extension} ::= 864 | ext-boolean {left paren} 864 {right paren}
{abstract data type extension} ::= 870 | ext-adt {left paren} 840 {right paren}
{object data management extensions} ::= 880 | ext-odm {left paren} 850 {right paren}
{sql xa-interface routines} ::= 890 | sql-xa {left paren} 850 {right paren}

{protocol option} ::=
{protocol not applicable}
| {minimal osi}
| {full stack osi}
| {ietf rfc 1006}
| {other transport}

{protocol not applicable} ::= 900 | rda-none | rda-none {left paren} 900 {right paren}
{minimal osi} ::= 910 | prot-mosi {left paren} 910 {right paren}
{full stack osi} ::= 920 | prot-osi {left paren} 920 {right paren}
{internet rfc 1006} ::= 930 | prot-1006 {left paren} 930 {right paren}
{other transport} ::= 940 | prot-other {left paren} 940 {right paren}

{rda option} ::=
| {rda stored execution}
| {rda status}
| {rda cancel}
| {rda tp context}

{rda stored execution} ::= 960 | rda-stored {left paren} 960 {right paren}
{rda status} ::= 970 | rda-status {left paren} 970 {right paren}
{rda cancel} ::= 980 | rda-cancel {left paren} 980 {right paren}
{rda tp context} ::= 990 | rda-tp {left paren} 990 {right paren}

7.4 Specific SQL/ERI CLI Server profiles

The SQL/CLI binding style is expected to be very popular in local area networks consisting of client applications and server data repositories. The following object identifiers, whose syntax is defined in Section 7.3 above, identify specific SQL/ERI CLI Server profiles that will be popular for Federal procurements over the next several years.

SQL/ERI Read-Only CLI Server Profile - Level 1

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) cli-ro1(11) }

Profile:
1) Minimal DML 2) No SDL 3) Commit-Rollback 4) Read Committed 5) SQL/CLI 6) C 7) No Session 8) No Extensions 9) Not Applicable 10) Not Applicable

SQL/ERI Read-Only CLI Server Profile - Level 2

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) cli-ro2(15) }

Profile:
1) Transitional DML 2) No SDL 3) Commit-Rollback 4) Read Committed 5) SQL/CLI 6) C 7) Set Schema 8) SQL Features 9) Not Applicable 10) Not Applicable

SQL/ERI Read-Only CLI Server Profile - Level 3

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) cli-ro3(19) }

Profile:
1) Intermediate DML 2) No SDL 3) Commit-Rollback 4) Read Committed 5) SQL/CLI 6) C 7) {Set Schema, Set Session Authorization, Set Time Zone} 8) SQL Features 9) Not Applicable 10) Not Applicable

SQL/ERI Read-Only CLI Server Profile - Level 4

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) cli-ro4(23) }

Profile:
1) Intermediate DML 2) No SDL 3) Commit-Rollback 4) Read Committed 5) SQL/CLI 6) C 7) All Session 8) {SQL Features, Executable SQL/PSM} 9) Not Applicable 10) Not Applicable

SQL/ERI Read-Write CLI Server Profile - Level 1

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) cli-rw1(12) }

Profile:
1) Minimal DML 2) No SDL 3) Commit-Rollback 4) Serializable 5) SQL/CLI 6) C 7) No Session 8) No Extensions 9) Not Applicable 10) Not Applicable

SQL/ERI Read-Write CLI Server Profile - Level 2

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) cli-rw2(16) }

Profile:
1) Transitional DML 2) No SDL 3) Transaction Isolation 4) Serializable 5) SQL/CLI 6) C 7) Set Schema 8) SQL Features 9) Not Applicable 10) Not Applicable

SQL/ERI Read-Write CLI Server Profile - Level 3

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) cli-rw3(20) }

Profile:
1) Intermediate DML 2) No SDL 3) Transaction Isolation 4) Serializable 5) SQL/CLI 6) C 7) {Set Schema, Set Session Authorization, Set Time Zone} 8) SQL Features 9) Not Applicable 10) Not Applicable

SQL/ERI Read-Write CLI Server Profile - Level 4

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) cli-rw4(24) }

Profile:
1) Intermediate DML 2) Minimal SDL 3) Transaction Isolation 4) Serializable 5) SQL/CLI 6) C 7) All Session 8) {SQL Features, Executable SQL/PSM} 9) Not Applicable 10) Not Applicable

7.5 Specific SQL/ERI RDA Server profiles

A very beneficial use of SQL-related object identifiers is in "level of service" negotiations that may take place when one open system opens a dialogue with another open system. The following object identifiers, whose syntax is defined in Section 7.3 above, identify specific SQL/ERI RDA/SQL-Server profiles that will be popular for Federal procurements over the next several years.

SQL/ERI Read-Only RDA Server Profile - Level 1

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) rda-ro1(13) }

Profile:
1) Minimal DML 2) No SDL 3) Commit-Rollback 4) Read Committed 5) RDA/SQL 6) No Language 7) No Session 8) No Extensions 9) Internet RFC 1006 10) No RDA Options

SQL/ERI Read-Only RDA Server Profile - Level 2

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) rda-ro2(17) }

Profile:
1) Transitional DML 2) No SDL 3) Commit-Rollback 4) Read Committed 5) RDA/SQL 6) No Language 7) Set Schema 8) SQL Features 9) Internet RFC 1006 10) {RDA Status, RDA Cancel}

SQL/ERI Read-Only RDA Server Profile - Level 3

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) rda-ro3(21) }

Profile:
1) Intermediate DML 2) No SDL 3) Commit-Rollback 4) Read Committed 5) RDA/SQL 6) No Language 7) {Set Schema, Set Session Authorization, Set Time Zone} 8) SQL Features 9) Internet RFC 1006 10) {RDA status, RDA cancel}

SQL/ERI Read-Only RDA Server Profile - Level 4

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) rda-ro4(25) }

Profile:
1) Intermediate DML 2) No SDL 3) Commit-Rollback 4) Read Committed 5) RDA/SQL 6) No Language 7) All Session 8) {SQL Features, Executable SQL/PSM} 9) Internet RFC 1006 10) {RDA Status, RDA Cancel, RDA Stored Execution}

SQL/ERI Read-Write RDA Server Profile - Level 1

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) rda-rw1(14) }

Profile:
1) Minimal DML 2) No SDL 3) Commit-Rollback 4) Serializable 5) RDA/SQL 6) No Language 7) No Session 8) No Extensions 9) Internet RFC 1006 10) No RDA Options

SQL/ERI Read-Write RDA Server Profile - Level 2

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) rda-rw2(18) }

Profile:
1) Transitional DML 2) No SDL 3) Transaction Isolation 4) Serializable 5) RDA/SQL 6) No Language 7) Set Schema 8) SQL Features 9) Internet RFC 1006 10) {RDA Status, RDA Cancel}

SQL/ERI Read-Write RDA Server Profile - Level 3

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) rda-rw3(22) }

Profile:
1) Intermediate DML 2) No SDL 3) Transaction Isolation 4) Serializable 5) RDA/SQL 6) No Language 7) {Set Schema, Set Session Authorization, Set Time Zone} 8) SQL Features 9) Internet RFC 1006 10) {RDA Status, RDA Cancel}

SQL/ERI Read-Write RDA Server Profile - Level 4

Object Identifier: { joint-iso-ccitt(2) country(16) us(840) gov(101) sql(4) eri-server(5) rda-rw4(26) }

Profile:
1) Intermediate DML 2) Minimal SDL 3) Transaction Isolation 4) Serializable 5) RDA/SQL 6) No Language 7) {Set Schema, Set Session Authorization, Set Time Zone} 8) {SQL Features, Executable SQL/PSM 9) Internet RFC 1006 10) {RDA Status, RDA Cancel, RDA Stored Execution}



Return to FIPS 193