3 External Specification

advertisement
Detailed Design Specification
© 2006, 2010, 2012 Actian Corporation
Project Name
DBMS Authentication
Author Gordon Thorpe and Karl Schendel
Last Saved Date
March 8, 2016
Revision
Template Revision 1.9 (but should match 2.0)
DBMS Authentication
Responsibility List
Assigned To
Action
Responsibility
Owner
Engineer/Architect
Peer Review
Peer Review
Development Manager
Test Review
QA Engineer
Peer Review
Sustaining Engineering Manager
Sustainability Review
Sustaining Engineering Engineer
Pam Fowler
Peer Review
Level 1 Support Manager
Ahmed Ezzat
Peer Review
Chief Architect
Elaine Grieco
Peer Review
Technical Writer
Peer Review
Services
Peer Review
Services
Chris Rogers
Signature
QA Manager
Jonathan Rosen
Alex Hanshaw
Lee Howard
Note: The Responsibility List reflects those required to review and provide feedback
for the document. Signoff by those listed is required prior to the beginning of the
development phase.
Additional reviewers
DBMS Authentication106763433
Page 2 of 44
Assigned To
Action
Responsibility
Karl Schendel
Information
DBMS
Teresa King
Information
Gateways
Teresa King
Information
Connectivity
Joe Kronk
Information
OpenROAD
Roger Whitcomb
Information
Tools
Emma McGrattan
Information
Usability
Signature
Note: The additional reviewers list reflects other people that should be copied on the
document and invited to review meetings, but feedback from them is not required for
the document to be approved. Managers of other engineering groups are copied for
comment on how it affects their product or product area. The manager for your own
engineering area is included in first table and can be removed from here.
SQL Language Review
DBMS Authentication106763433
Page 3 of 44
Assigned To
Action
Responsibility
Ian Kirkham
Language Review
DBMS
Teresa King
Language Review
Gateways
Teresa King
Language Review
Connectivity
Joe Kronk
Language Review
OpenROAD
Alex Hanshaw
Language Review
Supportability and
Backward
Compatibility
Signature
Note: The SQL language review table lists people that should be sent an initial draft
copy of this document if you answered “yes” to any questions in section 2.2. If you did
not answer yes to any of those questions you may delete this table.
DBMS Authentication106763433
Page 4 of 44
Change History:
Revision Date
Last Revision By
Description of Change
24-May-2012
Chris Clark
8-Aug-2012
Karl Schendel
Numerous refinements, -user/--host options
14-Aug-2012
Karl Schendel
Delete --host, change -user to -user
22-Aug-2012
Karl Schendel
Include user description idea
28-Aug-2012
Karl Schendel
-user passes remote; editorial clarifications
7-Sep-2012
Karl Schendel
CHANGE_PASSWORD is a privilege, not a withoption; clarify
1-Nov-2012
Karl Schendel
SAVEPASSWORD works with -user=uname
password prompt
Initial Draft
DBMS Authentication106763433
Page 5 of 44
TABLE OF CONTENTS
1
2
INTRODUCTION ............................................................................................................. 10
1.1
SCOPE AND SUMMARY.......................................................................................................... 10
1.2
DEFINITIONS, ACRONYMS AND ABBREVIATIONS ........................................................................ 13
1.3
REFERENCES ....................................................................................................................... 15
1.4
NOTEWORTHY ISSUES........................................................................................................... 16
ARCHITECTURE OVERVIEW ............................................................................................ 17
2.1
HIGH LEVEL DESCRIPTION ...................................................................................................... 17
2.2
SQL LANGUAGE CHANGES..................................................................................................... 23
2.3
IMPLICATIONS FOR GCA ....................................................................................................... 25
2.4
CONNECTION PARAMETERS ................................................................................................... 25
2.5
LANGUAGE, UNICODE AND INTERNATIONALIZATION ISSUES ......................................................... 26
2.6
IMPLICATIONS FOR INGRES/STAR ............................................................................................ 26
2.7
IMPLICATIONS FOR DBA TOOLS ............................................................................................... 26
2.8
NEW IMA/MIB OBJECTS......................................................................................................... 27
2.9
NEW TRACE POINTS .............................................................................................................. 27
2.10
CATALOG ALTERATIONS ..................................................................................................... 27
2.11
IMPLICATION FOR GATEWAYS ............................................................................................ 28
2.12
IMPLICATIONS FOR DATABASE DRIVERS ................................................................................ 28
2.13
IMPLICATIONS FOR OPENROAD ........................................................................................... 28
2.14
DESIGN LIMITATIONS AND ASSUMPTIONS ............................................................................ 28
DBMS Authentication106763433
Page 6 of 44
3
4
5
2.15
PLATFORM SPECIFIC ISSUES ............................................................................................... 29
2.16
PRODUCT INTERACTION .................................................................................................... 29
2.17
PATENT INFORMATION ..................................................................................................... 29
EXTERNAL SPECIFICATION ............................................................................................. 30
3.1
USER PERSPECTIVE ............................................................................................................... 30
3.2
INSTALLATION AND ADMINISTRATION PERSPECTIVE ................................................................... 32
3.3
MIGRATION ISSUES .............................................................................................................. 32
3.4
SECURITY IMPACT ................................................................................................................ 33
INTERNAL SPECIFICATION .............................................................................................. 34
4.1
ESTIMATED TASKS AND EFFORT .............................................................................................. 34
4.2
PROGRAMMING .................................................................................................................. 35
4.3
COMPATIBILITY LIBRARY INTERFACE CHANGES ........................................................................... 36
4.4
INTERFACE .......................................................................................................................... 36
4.5
BUILD IMPLICATIONS ............................................................................................................ 37
4.6
UI RESOURCE/PROPERTIES FILES............................................................................................ 37
4.7
BITMAP RESOURCES ............................................................................................................. 37
4.8
ICON FILES.......................................................................................................................... 38
4.9
PICCOLO CHANGE NUMBERS .................................................................................................. 38
IMPACT AND DOCUMENTATION SUMMARY .................................................................. 39
5.1
PRODUCT/COMPONENT IMPACTS .......................................................................................... 39
5.2
DOCUMENTATION ............................................................................................................... 39
DBMS Authentication106763433
Page 7 of 44
6
QUALITY ISSUES ............................................................................................................ 41
6.1
UNIT TESTING SUMMARY...................................................................................................... 41
6.2
HANDOFFQA IMPACT ............................................................................................................ 41
6.3
TESTING RECOMMENDATIONS ............................................................................................... 41
6.4
REGRESSION RISK ASSESSMENT.............................................................................................. 42
7
PACKAGING AND INSTALLATION IMPACT ....................................................................... 43
8
SUPPORT IMPACT.......................................................................................................... 44
8.1
EXAMPLES AND TESTS ........................................................................................................... 44
DBMS Authentication106763433
Page 8 of 44
PREFACE
This document describes external functional specifications as well as design
specifications for one feature of a release project. There will be many Detailed
Design Specifications (DDS) for each project, one for each major feature
described in the Software Requirements Specification (SRS) or project wiki page.
The SRS or the wiki page is the master document for the entire project.
This is intended to be a living document. The product development cycle is a
dynamic process in which our understanding of the project and its criteria for
success are refined over time. It is therefore expected that the completed
Detailed Design Specification will undergo many revisions during the course of a
project as requirements; resources and constraints evolve. The engineer would
not be expected to complete all sections in the initial draft; some sections are
designed so that they can only be completed one the project is coded. *NOTE:
that you are expected to continue updating this document until the release
project is handed over to SE*
The Development Manager is responsible for the contents of this document.
Deliverables that must be completed prior to releasing this document are at least
one of:
 Software Requirements Specification
 Wiki page on the engineering web describing the components of the project
All template instructions can be identified by their gray italic type. This information
may be removed after completing the necessary project information.
Ant information detailed in this document should not be repeated in the wiki page
for this feature unless there is a compelling reason to do otherwise one of the
copies of the information may become out-of-date. If you need to, refer to the DDS
on the wiki page.
DBMS Authentication106763433
Page 9 of 44
1 INTRODUCTION
1.1 SCOPE AND SUMMARY
Explain what the feature is expected to do; notes on the drivers for this feature
(such as partner or customer requirements) should be placed in here.
It is becoming more common for Vectorwise POCs to ask if DBMS authentication
support can be provided, as that is what they use for other DBMSs. “DBMS
authentication” here generally means some variation on “I want to be able to set
up a DBMS user and password entirely within the DBMS.” Ingres customers
have requested this in the past as well. This has occurred enough times that
there are wiki pages on how to simulate Oracle-like authentication, see
http://community.actian.com/wiki/DBMS_Authentication_Workarounds
DBMS authentication is not just a "that's the way we've always done it" feature.
The installation administrator is very likely not the same as the OS system
administrator. Adding an OS user every time a DBMS user is needed causes
delays at best, and corporate political problems at worst. OS admins may see
the need for additional OS users as a security risk, especially when the user is to
be restricted to DBMS use anyway (which is fairly common).
This spec describes an enhancement to provide DBMS authentication by
allowing the DBMS server to authenticate a username/password against the
Ingres defined username and (database) password, with no reference to OS
users or passwords.
Enhancement request details.
Service Desk 119327
SIR 118552
For the purpose of this document, wherever Ingres is mentioned also assume
Vectorwise, EA, and EDBC.
1.1.1.1 Motivation
Many users are familiar with database authentication that is commonly used to
access other databases such as Oracle and MS SQL Server. Ingres (and with
DBMS Authentication106763433
Page 10 of 44
that Vectorwise) does not directly provide database authentication. As a result
numerous users have difficulties configuring authentication for Ingres/Vectorwise.
The requirements for this capability are driven by a comparison between
functionality other DBMS vendors provide versus the way Ingres users have to
configure authentication.
1.1.1.2 Must-have requirements
Mark Van de Wiel, the Vectorwise Product manager provided the following list of
requirements.

Ingres/ Vectorwise must be able to use database-level authentication. I.e.
a user who is defined in the database and not at the OS level (or in a
global directory) must be able to connect to the database using a valid
username/password.

Passwords have to be encrypted on disk to prevent malicious users from
getting easy access to the database.

Passwords must be encrypted when passed over the network to prevent
network sniffers from getting easy access to the database.

Administrative users must be able to get access to the instance using a
means that bypasses database authentication. This may be an existing
authentication method.

Future versions of Ingres/Vectorwise that implement new authentication
capabilities must be backwards compatible with current authentication
methods. Backwards compatibility may be enabled through a
configuration setting which, when changed, breaks backwards
compatibility. New installations may set the new authentication method
whereas existing system upgrades would keep the existing method.

Statements to set and modify passwords must be provided as well as GUI
support for changing passwords.
DBMS Authentication106763433
Page 11 of 44
1.1.1.3 Nice-to-have requirements

Administrators should be able to block users without having to delete
them (e.g. lock the user).

Administrators should be able to set password rules such as minimum
length, minimum complexity requirements, expiration time, number of
failed login attempts, etc.

Administrators should be able to use SSL key verification.

A local OS user, even if known to the Ingres/Vectorwise database through
OS authentication, should be able to impersonate another user by using a
valid username/password combination.
This project will allow users to be managed solely in the DBMS using existing
Ingres mechanisms, such as; “CREATE USER…” SQL statements, accessdb,
VisualDBA, Actian Director, third party DBA tools, etc.
Users who know a username and password should be able to connect as that
user without any restrictions, both locally and remotely. Current mechanisms for
providing username/password should work with the new system, allowing old
clients to connect to new DBMS authentication servers; i.e. vnodes on older
clients should work with new servers configured for DBMS authentication.
SQL monitor tools should work with the new authentication system. For example,
Oracle users can connect with sqlplus (the Oracle SQL terminal monitor) locally
and remotely by specifying the username and password, examples:
Oracle local, explicitly specify username and password
> sqlplus username/password
Oracle remote, explicitly specify username, password, and host
DBMS Authentication106763433
Page 12 of 44
> sqlplus username/password@remotehost
Oracle local, explicitly specify username, user is then prompted for
password
> sqlplus username
Enter password:
Oracle local, user prompted for both username and password
> sqlplus
Enter user-name:
Enter password:
Ingres should offer similar functionality (albeit with different syntax).
1.2 DEFINITIONS, ACRONYMS AND ABBREVIATIONS
Provide the definitions of terms, acronyms and abbreviations required to
interpret this document. For consistency, use the format in the examples below:
Detailed Design Specification: (DDS) A representation of a software system or
component of a system created to facilitate analysis, planning, implementation
and decision-making. The DDS is used as the primary medium for
communicating software design information.
accessdb: original Ingres forms based DBA tool, used to create DBMS users
and manage iidbdb.
Actian Director: New GUI tool for Ingres, similar to Microsoft’s Management
Console
BUGS: bug and enhancement tracking system, tied to Piccolo
dbauth: short hand for DBMS Authentication, the aim of this project
DBMS Authentication106763433
Page 13 of 44
EDBC: Server that allows Ingres SQL and datatypes to be used with foreign
mainframe (which may or may not be relational) databases such as IBM DB2,
CA-Datacom, VSAM, IDMS, etc.
Enterprise Access: Ingres server that allows Ingres SQL and datatypes to be
used with foreign relational SQL databases such as Oracle, Microsoft SQL
Server, and IBM DB2 for Unix, Linux, and Windows.
Forms / FRS: the Ingres console/text based windowing system. Similar to (but
predates) curses.
Gateway: In this document this refers to the Enterprise Access product or EDBC.
GCA: General Communication Application interface, GCA provides the
mechanism through which front-ends, back-ends, and distributed back-ends
access GCF services.
GCF: General Communication Facility, used to send commands a data between
heterogeneous components
GCC / IIGCC: Communication server used to talk to remote clients/servers.
GCD / IIGCD / DAS Server: Data Access Server, special communication server
(like GCC). DAS is used by both JDBC and .NET clients.
GCN / IIGCN: Name server, keeps track of all servers in an Ingres installation.
iidbdb: the Ingres database of databases, used to keep track of users, groups,
databases, etc. Meta data database for the installation.
II_SYSTEM: Environment variable that indicates which Ingres installation to use
locally
Ingres Net: name of the remote communication protocol used when making use
of vnodes and GCC
Kerberos / krb: Kerberos V5 http://web.mit.edu/kerberos/ is a network
authentication protocol, it has been integrated into Windows Active Directory. It
offers encrypted traffic and SSO.
Local user: a user who is logged into the operating system, attempting to
connect to an Ingres DBMS in the current installation (i.e. II_SYSTEM for user
matches target DBMS)
netutil: Forms based admin tool for maintaining vnode definitions
DBMS Authentication106763433
Page 14 of 44
OS: In this document Operating System (and not Open Source)
Piccolo / p2: Actian / Ingres source code control system, precursor to Perforce
(p4)
Remote user: A user connecting to a remote DBMS installation (either across
Ingres Net or via the GCD)
SD: Service Desk, the issue tracking system used at Actian.
SIR: Enhancement request (system improvement request) in the BUGS system
SSO: Single Sign On, allows users to authenticate once with a central server (for
example, Windows Active Directory of Kerberos) and allows access to different
servers and resources without need to specify a username and password.
User impersonation: Connecting as user another user to a DBMS. E.g. local OS
user fred connecting as jim in the DBMS
vdba: Visual DBA, Windows specific GUI admin tools. Actian Director is intended
to replace this tool and be cross platform.
vnode: Virtual Node, used to access remote servers. Vnodes are a shortcut (like
ODBC Data Source Definitions) to a remote database, they include; host name,
protocol, and port as well as optional authentication information. They are similar
to Oracle’s TNS name (but with authentication support). It is not uncommon to
see users refer to vnodes when they really mean using Ingres Net to a remote
server (i.e. the mechanism not the actual vnode definition).
1.3 REFERENCES

Provide a list of documents referenced elsewhere in this document and/or
other documents that were used during research or may help the reader
understand the feature.

Identify each document by title, report number (if applicable), date and
publishing organization.

If possible, specify the sources from which the references can be obtained
Click here to begin typing.
DBMS Authentication106763433
Page 15 of 44
1.4 NOTEWORTHY ISSUES
Since the DDS is an evolving representation of the design (a "living document"),
this section is used to keep track of issues that arise during the project life cycle
and items that need special attention. If you add a FIX_ME or comment similar
to “need to do something about blah here” to the code, you should NOTE: the
issue here.
Open issue regarding OpenROAD and what changes might be necessary, or
desirable, to support dbauth connections cleanly.
Star support of mixed dbauth/non-dbauth environments is being punted for now,
not sure what can or should be done there.
Actian Director probably needs to know whether target installation supports new
user options. Should this be something in iidbcapabilities or equivalent? Or
does bumping the SQL Level suffice?
This spec does not attempt to describe any changes to Visual DBA. It is unclear
whether VDBA should be touched or left alone.
It would be nice to add an additional string field to the iiusers table (long_name or
description or some such name). This has not been made part of the spec. In
addition to the feature creep issue, one then has to ask whether description
should be added to iiusergroup and iirole as well. If time permits however,
adding a description column will be considered.
DBMS Authentication106763433
Page 16 of 44
2 ARCHITECTURE OVERVIEW
2.1 HIGH LEVEL DESCRIPTION
2.1.1
Overview of existing authentication mechanisms
Ingres and Vectorwise (up to version 10.1 and 2.5 respectively) support
traditional authentication options. They are:
1. Operating System authentication;
a. Local users connect without needing a password (essentially
Single Sign On). NOTE: does not allow user impersonation unless
either the impersonator is an admin/super user OR the
impersonator is logged into the operating system as the required
user.
b. Remote users provide their operating system username and
password, usually via a vnode. NOTE: does allow user
impersonation but requires OS users to be managed as well as
DBMS users.
2. Installation passwords
a. Installation administrator sets up a vnode that use a secret
installation password. When users make use of this vnode (the
password is hidden from the users) to connect remotely, they are
authenticated by the operating system and the installation
password. The session user is the logged-in OS user on the
client. NOTE: allows user impersonation as long as the client has
the user as an OS user, and the impersonator can log in as that
user on the client.
3. Kerberos support
a. Allows SSO (even remotely) and includes encrypted network
traffic to remote servers. The session user is the Kerberos
principal.
DBMS Authentication106763433
Page 17 of 44
The existing authentication architecture is based on the GCN process performing
ALL user authentication. The DBMS simply receives a user name in the
connection request, and that user (presuming it to be a valid Ingres user)
becomes the session user.
After the initial connection, the client may also send a DBMS password as part of
the modify-association (GCA_MD_ASSOC) message. This password is sent in
cleartext, and is compared with the DBMS password defined by the iiuser record
in iidbdb. (The iiuser password is stored as a one-way hashed value.)
2.1.2
The DBMS Authentication Mechanism
The new DBMS-authentication (dbauth) mechanism offloads the user
authentication from the GCN, instead passing the GCA_REQUEST username
and password to the DBMS as part of the connect request. The connect request
will also indicate “unauthenticated”, so that the DBMS knows that it must do user
and password checking. If the user is a valid Ingres user, and the password
hashes to the stored iiuser password, the connection succeeds. The dbauth
mechanism makes no reference to OS user or password, so it is possible to have
DBMS users that are not valid OS users. The password sent with the
GCA_REQUEST message is encrypted over the wire, so it is not visible in
cleartext.
The GCN will not defer authentication to the DBMS unless the DBMS server says
that it can handle it. There will be a new configuration parameter to turn dbauth
on or off, per DBMS server. Dbauth may only be configured at the server level,
not per database. An example of where per-server dbauth configuration may be
useful is with Enterprise Access (gateway) as follows:

Some users deploy gateways for both Oracle and Microsoft SQL Server
(MSSQL). Typically customers use the default authentication mechanism
for each back end; for MSSQL this means OS authentication, for Oracle
this means DBMS authentication. The new Ingres dbauth mechanism will
allow end users to configure the Oracle gateway with dbuth to use the
secure password sent via the client vnode as a pass through to the
gateway (with the current mechanism users have to send passwords
insecurely via the “-P” flag or by storing passwords on the gateway
DBMS Authentication106763433
Page 18 of 44
machine). Conversely MSSQL users using OS authentication will want to
continue to use the original GCN auth check as the gateway passes on
user tokens (rather than passwords) to MSSQL.

Dbauth will allow gateways access to client password information; this
information has not been accessible to servers since Ingres 2.5.
There are still some situations where the GCN will perform some sort of
authentication: local connections (i.e. no username or password given with the
GCA_REQUEST), installation password connections (the session user is the OS
user on the client side), and Kerberos connections (the session user is the
Kerberos principal). For these situations, the dbauth server will not see the
“unauthenticated” flag and will perform the connection the old way, checking only
that the user is a valid Ingres user. (This satisfies the requirement that
administrative users be able to connect locally with no DBMS password.) Since
one of the purposes of dbauth is to stop sending cleartext passwords, a dbauthenabled server will not attempt to ask for or verify any DBMS password when it
received an already-authenticated connection request. Dbauth-enabled servers
will always ignore any password element (GCA_RUPASS) of the modifyassociation message.
When dbauth is active, the GCN acts purely as a pass through mechanism for
remote connection requests. One implication of this is that connection testing that
does a connect to a remote GCN (e.g. the existing netutil “test vnode” option) will
behave differently; it will now act as a ping test; it will no longer test the vnode
authentication. Users who want to test authentication should make a database
connect test. For example, the ODBC configuration tool shipping since Ingres 2.6
tests authentication using a database connection test.
When dbauth is enabled, any GCA connection request supplying a username
and password (i.e. anything other than a purely local connection) will be
authenticated against that username and password. This allows users to
impersonate other users, assuming that they know the relevant (DBMS)
password. The exact syntax needed at the client end will depend on the
application environment, API (or API-based) vs libq. API style connections
(including ODBC, JDBC, .NET) specify the username and password in the data
source or connection request; user entry of the username and password is
entirely up to the application. Libq programs (ESQL, character 4GL,
DBMS Authentication106763433
Page 19 of 44
OpenROAD) have a somewhat more complex set of possibilities, as username
and password entry is partially handled by the Ingres library:

The program can specify the -local_system_user and local_system_password options in the connect statement. (or, for remote
connections, the equivalent remote_system_user and
remote_system_password options.) These options exist today, although
they are little known and not documented.

The program can specify a vnode (containing username and password)
as part of the database name.

The program can specify the database name using "inline" vnode syntax,
i.e. '@[user,password]::dbname' for local connections, or
'@host,port[user,password]::dbname' for remote connections.

The program can specify a new connect option -user=username which
will pass the specified user as remote_system_user, and will prompt for a
password to be sent as remote_system_password. (Note the difference
from -u username, which sends the session effective user in the
MD_ASSOC message after the connection is made. Use of -u and -user
together is allowed; the initial connect user is the -user one, and the
effective user is the -u user.) For completeness, the password can be
specified inline as well, as -user=username,password.
The new -user option is fundamentally an exec sql connect option, but the intent
is to add it to standard command-line tools as a command line option as well. (At
minimum, the terminal monitor accept -user on the command line.) If the -user
connect option is used, the database name must not contain any [user,password]
part. The database name can include remote host information (in the form
@host,port::dbname).
The reason for adding the -user connect and command line option is that it
enables a convenient way for libq utilities (such as the SQL Terminal Monitor) to
connect to a dbauth server, without the awkwardness of the inline vnode syntax 
which also exposes the password on the command line to utilities such as ps.
The existing -P option is unavailing, as it sends the password with the modifyassociation rather than the connection request, and does nothing about the user
name. (As noted above, old-style DBMS passwords are ignored when
connecting using dbauth.)
DBMS Authentication106763433
Page 20 of 44
Any utility or application that wants to accept -user on the command line will have
to be changed to pass that option through to the exec sql connect options=
string. The password prompting implied by the -user connect option will be done
with the Ingres library IIUIpassword() function, which does not echo password
entry, and does "the right thing" when in character forms mode. Ingres utilities
changed to accept -user on the command line will also be changed to prohibit
simultaneous use of -P (old-style password). Please note that any libq client
application with special password entry requirements is free to collect the
password in any manner it likes, and supply it to the connect using local or
remote_system_password, or vnode syntax.
If the -user option prompts for a password, and if the SAVEPASSWORD set_sql
option has been enabled (set to 1), the password is saved and re-used if another
connect statement is executed with -user=username (ie requesting a password
prompt). The password re-use will NOT verify that the connecting user is the
same, it's up to the application to control SAVEPASSWORD appropriately. This
feature is mostly for utilities such as optimizedb which connect once to check
whether the target is an Ingres database or a gateway, and then disconnect and
reconnect using the complete command line option list.
As noted above, purely local connections by valid Ingres users succeed with no
password prompt. In order to support situations where a mandatory DBMS
password is desired, a new CREATE USER with-option will be added:
DBMS_AUTHENTICATION='REQUIRED' or 'OPTIONAL'
With the default being 'OPTIONAL'. An authentication-required user must
connect using DBMS authentication. Connection requests that are already
authenticated outside the DBMS (local connections, installation-password
vnodes, Kerberos authentication) will be rejected with an error. An
authentication-required user cannot connect to a non-dbauth server at all.
Obviously, system administration users should be defined as DBMS
authentication-optional. Users with the "security" privilege will be forced to be
DBMS authentication-optional. (Originally, only the installation owner was going
to be forced optional, but it turns out to be remarkably difficult to determine the
installation owner from within the DBMS server.)
Users defined with no DBMS password are unusable with dbauth servers except
from non-dbauth connections (local, installation-password, Kerberos). It shall be
DBMS Authentication106763433
Page 21 of 44
an error to create or alter a user with both DBMS_AUTHENTICATION
'REQUIRED' and no DBMS password.
Older clients that predate DBMS authentication will still work with dbauth servers,
since the only client side requirement is that the desired username and password
both be supplied with the GCA_REQUEST message. Existing clients can do this
via vnodes (defined or inline), or with the system user/system password options.
The only client side feature unavailable from existing clients will be the new
libq/esql -user connect / command line option.
A mandatory requirement is the ability to change passwords. This capability
exists, but is only available today to users with the "maintain_user" privilege;
typically, a user is not able to change his or her own password. A new DBMS
user privilege will be added: CHANGE_PASSWORD. A user with the
CHANGE_PASSWORD privilege will be allowed to change his/her own
password (but nobody else's). A user is not permitted to change the changepassword privilege unless they have maintain_user privilege.
The CHANGE_PASSWORD privilege flag within the iiuser table will be
implemented, but actually implementing the ability for a user to change their own
password will be a stretch goal of the project.
Expiry date partially satisfies nice-to-have requirement:
Administrators should be able to set password rules such as minimum
length, minimum complexity requirements, expiration time, number of
failed login attempts, etc.
We do not have support for any of the other items in the list (for example,
“minimum length”), however this logic could be added to the DBMS in a later
project after we have experience with DBMS authentication out in the field.
The only nice-to-have requirement from
http://community.actian.com/wiki/Database_Authentication missing is:
Administrators should be able to use SSL key verification.
SSL certificate support requires SSL/TLS support; this is outside the scope of
this project, and in any case, SSL support is not directly related to DBMS
authentication.
NOTE: query text is plain text (unless using Kerberos), this includes passwords
in CREATE/ALTER user. This will not change. SSL support would deal with this.
DBMS Authentication106763433
Page 22 of 44
NOTE: DBMS Users are global to the installation; e.g. the user “fred” is known to
all databases (but may not have permission in all databases) and is the same
fred in all databases. This will not change with dbauth.
When security auditing is enabled, dbauth authentication failure will be audited in
the same way that an invalid DBMS user is audited today.
2.2 SQL LANGUAGE CHANGES
One additional (optional) WITH option and one additional PRIVILEGE=() option
will be added to the Ingres CREATE and ALTER USER and PROFILE
statements.
The new WITH option is:
DBMS_AUTHENTICATION = {'REQUIRED' | 'OPTIONAL'}
This option specifies whether the user can connect via any mechanism other
than DBMS authentication. If 'REQUIRED', only connect requests specifying the
user and password in the GCA_REQUEST, to a dbauth server, can succeed;
other connections including purely local connections will fail. No "security" user
can be defined as DBMS_AUTHENTICATION='REQUIRED', which includes the
installation owner and the catalog owner $ingres. The default is OPTIONAL.
Upon upgrade, existing users convert to OPTIONAL.
The new privilege is:
CHANGE_PASSWORD
This privilege can be specified anywhere that a privilege-list is used:
PRIVILEGE= or DEFAULT_PRIVILEGE=. The CHANGE_PASSWORD privilege
allows the user to change his/her own password with ALTER USER. Existing
users will not receive the privilege during catalog upgrade, since the privilege
does not exist currently. Note that the ability to actually change one's password
with ALTER USER is a stretch goal.
DBMS Authentication106763433
Page 23 of 44
2.2.1
Language changes to Ingres/Star’
Will the language changes be implemented in Ingres/star? If not why not?
None, Star does not support CREATE USER.
2.2.2
Language Changes to ABF
Will the language changes be implemented in ABF? If not why not?
Connections to ABF and imaged 4GL applications are governed by the libq/esql
rules listed in 2.1.2, as ABF/4GL uses libq for database connections. Depending
on where 4GL CONNECT statement options are validated, the new -user
connect option may need to be added to the 4GL runtime. 4GL will have to be
checked to see if it supports and validates the CREATE/ALTER USER options.
No other language changes.
2.2.3
Language Changes to Database Procedures
Will the language changes be implemented or be functional inside database
procedures? If not why not?
None.
2.2.4
Language Changes to Embedded SQL pre-compilers
Will the language changes be implemented in the embedded SQL Precompilers? If not why not?
The ESQL grammar will need to be checked to see if it validates
CREATE/ALTER user with-options; if it does, the new
DBMS_AUTHENTICATION option and CHANGE_PASSWORD privilege will
have to be supported.
2.2.5
Effects on dynamic SQL
Will the language changes work in dynamic SQL? If not why not?
None
DBMS Authentication106763433
Page 24 of 44
2.3 IMPLICATIONS FOR GCA
Is there anything about this feature (including language or data-type changes)
that will require a new GCA message type or have any other affect on GCA?
No changes to GCA, existing GCA protocol will be used.
2.4 CONNECTION PARAMETERS
No change to API or API-based connection parameters. As noted above, the
DBMS-password connection parameter is meaningless and ignored when
connecting to a dbauth server, but the parameter will still be accepted.
ESQL (libq) will have the -user option added to the EXEC SQL CONNECT
OPTIONS= string. This is a convenience option aimed at making dbauth
connections from ESQL programs easier and more consistent.
Syntax details for -user:
-user[=username[,password]]
Pass username as the "remote system user" and password as the "remote
system password", ie the dbauth user and password. If password is omitted, the
ESQL runtime will prompt, using IIUIpassword (the same routine used by the -P
option today). If user is omitted, the logged-in OS effective user (geteuid) will be
used. Note that if IIUIpassword is unsuitable, the application is free to acquire a
username and password in any way it likes, and pass them using vnode syntax
or user-password connection options.
If -user is specified, the database name must not include any [user,password]
syntax.
The -user option is supported in the EXEC SQL CONNECT OPTIONS= string.
The exact same syntax will be used on the command line, for those utilities that
support it.
Note: for local connections, the local_system_user (password) and
remote_system_user (password) are essentially equivalent. (They can be
different if the connecting program is a "trusted" server, i.e. a Star server, but
DBMS Authentication106763433
Page 25 of 44
we're considering client connections here.) For remote connections, the values
sent to the remote server are the remote_system_user and password. The -user
option will always send the user and password as the remote user / password
since that will do the right thing in all scenarios.
2.5 LANGUAGE, UNICODE AND INTERNATIONALIZATION ISSUES
Is there anything about this feature that causes it to have unique characteristics
or testing requirements when implemented for the international market and
support for international or multi-byte character sets including Unicode (UTF16 or
UTF8)?
No changes.
2.6 IMPLICATIONS FOR INGRES/STAR
Does this feature have any implication for Ingres/Star? If so what are they?
Star servers can be defined as dbauth enabled. A dbauth-enabled Star server
will remember the password included with an unauthenticated (i.e. dbauth)
connection request, and in turn supply that password to any LDB's that that
session connects to. This implies that the LDB should also be dbauth. There
does not at present appear to be any good way to mix dbauth and non-dbauth
LDB's, other than by making the DBMS and relevant OS passwords the same.
2.7 IMPLICATIONS FOR DBA TOOLS
Does the feature have any implications for the DBA tools such as copydb,
auditdb, rollforwarddb, verifydb? Would a new verifydb option be useful?
Tools will need to be updated for:
1. CREATE/ALTER USER update (for new privileges)
2. Test connections will need to be updated due to change in behavior for
netutil test. In netutil, either two "Test" function keys are needed, or the
existing Test should dispatch to a submenu offering Host Connection and
DB Connection. Note, this is a stretch goal.
DBMS Authentication106763433
Page 26 of 44
3. Command line utilities will need to accept the -user option on the
command line. (Required for terminal monitor, stretch goal for everything
else.)
4. VDBA?
Actian Director will need to be updated to support the new CREATE USER
options, and possibly to address the semantic change in "connection test".
Visual DBA probably has something in it that needs attention, however it's not
clear whether we want to "fix" it, take out whatever would otherwise need to be
changed, or just leave it alone.
2.8 NEW IMA/MIB OBJECTS
Did you add any IMA objects as part of this feature? Are there any that would be
useful that perhaps you didn’t add because of lack of time?
None
2.9 NEW TRACE POINTS
Trace points should be avoided in favor of IMA objects. If you added any trace
points detail them here with an explanation of why it was not suitable for an IMA
object.
No new trace points are envisaged.
2.10 CATALOG ALTERATIONS
Does the feature add or alter the Ingres catalogs, either DBMS catalogs, frontend catalogs, or iidbdb catalogs? If so, fill in the details here and be sure to
update the document containing the catalog spec, which can be found here:
http://community.ingres.com/wiki/Ingres_Catalogs
User catalog iiuser will be changed to support the DBMS_AUTHENTICATION
option and CHANGE_PASSWORD privilege. Fortunately, there are a number of
existing privilege bits formerly used for B1 security that are no longer used; two
of these will be re-purposed and the rest forcibly cleared for future use.
DBMS Authentication106763433
Page 27 of 44
2.11 IMPLICATION FOR GATEWAYS
Does this feature have any implications for the Ingres gateways? Do any SQL
language changes need to be considered for implementation in gateway
products?
Enterprise Access Gateways would like to make use of this feature; gateway
team should be involved when discussing GCN registration mechanism.
2.12 IMPLICATIONS FOR DATABASE DRIVERS
Does this feature have any implications for any of the database drivers such as
ODBC, JDBC, Python, PHP, Ruby, etc? Do any SQL language changes need to
be considered for implementation in these drivers?
Drivers should already be using the (remote) username/password connection
options. May need to review drivers for local usage when overriding (i.e.
impersonating) the username and password as a non-super user. E.g. in ODBC.
JDBC will need to be tested with local user (with new name/password specified)
and DBMS_AUTHENTICATION='REQUIRED' set for that user.
2.13 IMPLICATIONS FOR OPENROAD
Does this feature have any implications for OpenROAD? De sure to mention any
changes to ADF that are necessary to implement this feature, they often impact
OpenROAD. Do any SQL language changes need to be considered for
implementation in OpenROAD
OpenROAD will need to change to support the CREATE/ALTER USER changes.
It may also be desirable to support the -user connection option. Needs someone
OR-knowledgeable to weigh in!
2.14 DESIGN LIMITATIONS AND ASSUMPTIONS
This section should list current limitations and assumptions made in the design.
A basic assumption is that Ingres users are defined installation-wide, not perserver or per-database.
DBMS Authentication106763433
Page 28 of 44
The current design does not attempt to solve or deal with dbauth-enabled Star
operating in mixed dbauth / non-dbauth environments. While the exact behavior
is will defined, the results may or may not be useful.
2.14.1 Dependencies
Does this feature depend on any external functionality (such as an XML parser,
or some other similar piece of code that does not belong to Ingres)? Does this
feature depend on another feature that will be, or has been coded in this release
of the product? Describe the dependency.
None.
2.15 PLATFORM SPECIFIC ISSUES
None.
2.16 PRODUCT INTERACTION
Does this feature cause any changes in the way that Ingres products interact with
each-other other than already detailed in the above sections? Are there certain
products that will/will no work with this feature (this is more relevant to tools such
as VDBA and new middle-ware servers)?
Actian Director may have to be at least somewhat aware of the target installation
capabilities so as to send / not send DBMS_AUTHENTICATION option or
CHANGE_PASSWORD privilege in CREATE or ALTER USER statements.
2.17 PATENT INFORMATION
If there is any technology being developed for this feature that could be
considered for a patent, NOTE: the information here.
N/A
DBMS Authentication106763433
Page 29 of 44
3 EXTERNAL SPECIFICATION
3.1 USER PERSPECTIVE
In this section, the focus is on the tasks that a user will perform with this feature.
Describe what the feature does and how it works form a user perspective. Focus
on how it is used to perform the function described in the high level description.

Provide screen shots if appropriate
Once Ingres is installed, the installation owner should be able to create a user,
e.g.:
> sql iidbdb
CREATE USER fred WITH PASSWORD = 'secret';
\p\g
\q
Assume that dbauth is turned on for the following examples.
A user logged in locally (on the server machine) can connect as before,
assuming that the user is defined with dbms authentication optional:
sql dbname
If the user is defined with dbms authentication required, the connection attempt
fails. Note that in the successful case, even if the user has a dbms password, no
password prompt occurs, nor any dbms password validation.
DBMS Authentication106763433
Page 30 of 44
The user may also connect, either as themselves or as some other Ingres user,
using dbms authentication. Since “sql” is a libq program, the -user option can be
invoked, or the local-vnode syntax used:
sql -user dbname
sql -user=fred dbname
sql '@[fred,secret]::dbname'
In the first two examples, the user is prompted for the password before the
DBMS connection is made. The first example connects as the logged-in OS
user, the second connects as user 'fred'. In the third example, the password is
entered on the command line. For the last two examples, user fred need not be
an OS user.
As a side note, if dbauth is NOT enabled at the server end, the last two examples
still work; except that fred would then have to be an OS user, and the password
would have to be fred's OS password. If fred had a dbms password defined, with
dbauth off, the server will request a password prompt for the DBMS password.
(Thus, the -user=fred example might get two password prompts if dbauth is off.)
If connecting to a remote host using dbauth, either a vnode or inline vnode
syntax can be used:
sql vnode::dbname
(user, password in the vnode)
sql '@host,VW[fred,secret]::dbname'
(inline)
sql -user=fred @host,VW::dbname (prompts for password)
The effective-user capability does not conflict with the -user option. As an
example, if user fred has DB_ADMIN privileges for the database, he can connect
and authenticate as himself, but then run the session with a different effective
user:
sql -user=fred -u ralph dbname
In this example, the user is prompted for a password (which will be user fred's
password), and the user (fred) and password are authenticated by the DBMS.
Once the session is established, the effective user (ralph) is set.
DBMS Authentication106763433
Page 31 of 44
API and API-based connections (ODBC, JDBC, .NET) all have a directly
specified username and password that correspond directly to the
GCA_REQUEST username and password. Those clients would not see any
change, other than having the user/password authenticated by the DBMS against
the iidbdb user/password instead of by the GCN against an OS user/password.
As mentioned before, any DBMS password sent by an API or API-based
application to a dbauth server would be ignored.
3.2 INSTALLATION AND ADMINISTRATION PERSPECTIVE
Include any special installation and setup tasks, system parameters or other
preparations that are necessary prior to use. Describe the steps needed to
setup and get the component going and any ongoing administration that will
need to be performed if relevant. List all configuration parameters that apply to
this feature here.
The installers will ask whether to install with dbauth turned on or off. The
relevant configuration parameter will be
ii.hostname.dbms.configname.dbms_authentication: ON/OFF
The dbms.crs default will be OFF.
The iii.$.secure.user_password parameter will be deprecated and ignored. (That
parameter allowed an installation to prevent the creation of DBMS passwords,
which is of dubious use in any case, and is untenable with dbauth on.)
3.3 MIGRATION ISSUES
Describe any special steps required to migrate from existing versions
Ingres/OpenROAD to this version that arise because of this feature. Does this
feature have any new catalogs or other implications for upgradedb?

Is the component going to be backward compatible?

Can this version co-exist with an older version?
Feature is expected to be backward compatible, that is, old remote client should
work with new (remote) dbauth enabled servers assuming that the DBMS
password defined in iiuser is compatible with the vnode password.
DBMS Authentication106763433
Page 32 of 44
When an existing installation is upgraded, existing users will be set to
dbms_authentication=’optional’, and will not get the change_password privilege.
3.4 SECURITY IMPACT
Does anything about the function need securing? Could it do any damage?
Could it cause the display of sensitive information?
Does the implementation methodology do anything that produces a potential
security exposure, such as run as root or Ingres (if this is an application)?
Security is paramount in this project as security is the main focus!
No changes are expected to the way we handle passwords as they are between
the client and the server (the biggest exposure point of passwords to external
observers). That is, the traditional username password exchange will be
unmodified; usernames sent as plain text, passwords will be encrypted as they
are today.
The server side implementation will make some effort to wipe memory areas
holding passwords. Any password held for long-term storage (such as in Star,
for LDB connects) will be obscured if not encrypted while in memory. The goal is
to avoid casual password collection in the event of unintended access to the
server memory image (core dump, etc).
DBMS Authentication106763433
Page 33 of 44
4 INTERNAL SPECIFICATION
4.1 ESTIMATED TASKS AND EFFORT
Estimate the engineering effort to code and test the component ready for hand
over to QA and Technical Writing. If it is a large function, break it up into smaller
“function points” and estimate each one. For large projects, filling out the table
below and should help but is not required. Estimates should be effort to code
complete; that is engineering effort assuming 100% of an engineer’s time is
used, which will not normally be equal to elapsed time for the project. Estimates
should include time to:

Code the feature and all of the error checking required for the feature
(error checking may be up to 50% of the code in the DBMS)

Test your code and make corrections

Write and post an integration plan (or more than one for large projects)

Run HandoffQA for each proposed submission and check the results
As a guide, an experienced engineer who already knows the code will normally
write and sanity test about 100 lines of code per day; engineers with less
experience or those that are new to the code will write less. Factor about 20% of
the time it took to code for final testing and fixes. Look at existing modules to help
make an estimate of the number of lines of code required. Tasks should normally
be submitted as they are sane and complete, so the formula might be something
like:
Time for task = (no_of_lines / 100) + 2 days for IP and HandoffQA
Total time = Sum (time for all tasks) + 20% for overall testing and fixes
Click here to begin typing
Task
Effort
(persondays)
Assigned to
Done
(yes/no)
Tested
(yes/no)
Description of task
DBMS Authentication106763433
Page 34 of 44
Total days
TOTAL
-
-
-
4.2 PROGRAMMING
List programs and modules written, changed or deleted. Initially this will be a
first pass estimate of what needs to be changed, it will likely change during the
course if the project. The version of this document at code complete will contain
the modules or programs that actually changed.
GCA changes to pass GCA_REQUEST password thru to server are already
done.
Server side:

Implement new iiuser privs for DBMS_AUTHENTICATION,
CHANGE_PASSWORD. Add syntax to create/alter user parsing. See if
same needed in profile row, at the very least make sure that profiles don't
interfere.

Read and store dbms_authentication config parameter.

Collect password from GCA_LISTEN request, store it someplace until
scs_initiate does user validation, then validate the password. Implement
dbauth-required check. Toss password after validation unless Star; Star
has to put it somewhere with session lifetime.

Record fact of dbauth connect, ignore GCA_RUPASS if so.

Star: pass gca_password to LDB if dbauth session.

(stretch) Implement ALTER USER PASSWORD= for change-password
enabled users. This will probably involve a special bypass for the alter
user privilege check against maintain_users, which is why it's stretch.
In libq : utils/ui : tools:

Add -user to connect option processing in libq (libqgca).

Teach tools (as many as possible, tm minimum) about -user on the
command line. Just need to accept/pass the option, don't need to
validate it; exec sql connect will do the checking and prompting.
Command line option checker needs to enforce -user interactions (no -P,
DBMS Authentication106763433
Page 35 of 44
no [user,pwd] or does that go in exec sql connect, or both?
(Implementation will choose.)
Elsewhere / misc:

CREATE/ALTER USER options in esql, 4GL parsers.

Upgradedb work for iiuser: clear old B1 junk, set new option defaults.
Bump the iidbcapabilities SQL level, and/or add new capability indicating
that new user privs exist (see Noteworthy Issues).

Add dbms_authentication config param to cbf, all the usual crs things
(including cbf help).

Actian Director changes to support new user options and to deal with oldversion compatibility.
4.3 COMPATIBILITY LIBRARY INTERFACE CHANGES
Describe any changes made to the compatibility library interface. Any changes
described here should be copied to CL platform reviewers for approval before
changes are made, and the CL spec should be updated to reflect the new
interface. Current platform reviewers are:
Darren Horler – VMS
Viktoriya Driker - Windows
Bob Bonchik, Alex Hanshaw – UNIX
Alex Hanshaw - Linux
None envisioned at present.
4.4 INTERFACE
How do other components that are external to the design interact with this
component? Describe methods and rules of interaction.

Communication protocols; is GCA affected? Other?

Changes of facility call interfaces in the DBMS (e.g. is dmf_call changed?)

Changes to the interface of non static functions
DBMS Authentication106763433
Page 36 of 44

New error codes or error conditions that will be logged or propagated up the
stack to other functions. Has the error handling for those functions been
updated?
GCA_LISTEN reply will now contain a password and a new "unauthenticated"
flag. (already done)
4.5 BUILD IMPLICATIONS
Does this feature require any special jam rules? Did it require any changes in jam
MANIFEST files? Any new build targets? Any other build alterations?
4.6 UI RESOURCE/PROPERTIES FILES
This section is largely relevant to GUI applications like OpenROAD and can be
removed for DBMS features.
Provide the names of the files required by the UI and Messages
File Name
Byte Count
Word Count
Format
Comments
4.7 BITMAP RESOURCES
This section is largely relevant to GUI applications like OpenROAD and can be
removed for DBMS features.
Provide the bitmap resources.
File
Comments
DBMS Authentication106763433
Page 37 of 44
4.8 ICON FILES
This section is largely relevant to GUI applications like OpenROAD and can be
removed for DBMS features.
Provide the icon files used.
File
Comments
Release note
System
requirements
4.9 PICCOLO CHANGE NUMBERS
Provide piccolo change numbers for changes made for this feature. This will be
filled in after the fact and should include change numbers for propagations of the
same change to other branches if appropriate
Change Number
Submitted to (code-branch)
Submission date
main
DBMS Authentication106763433
Page 38 of 44
5 IMPACT AND DOCUMENTATION SUMMARY
The estimates in this section are approximate and are intended to give other
groups such as Technical Writing, Services, Support and QA an idea of the
impact this change will have.
Need to document new feature in new features/readme guide/section.
Need to document CREATE/ALTER USER additions.
Need to document config option for enable/disable dbauth.
Need to document @[name,pass]::dbname syntax.
Need to better and more fully document EXEC SQL CONNECT OPTIONS=
options (currently one is referred to the command reference for the sql
command!)
Need to document new -user connect / cmdline option.
5.1 PRODUCT/COMPONENT IMPACTS
5.1.1
Entities
List the tools, commands, reports and messages that are impacted by the
development of the module/function. Use the table below to summarize these
changes; you can refer to other sections for details.
Entity
New
Modified
Comments
Tool
Commands
Messages
Help Modules
5.2 DOCUMENTATION
List the existing end-user documentation that is affected by modules changes,
and how it is affected. Be as specific and thorough as possible.
DBMS Authentication106763433
Page 39 of 44
MANUAL
CHANGES NEEDED
Estimated
# of Pages
Installation Guide
Database Administrator Guide
System Administrator Guide
Connectivity Guide
SQL Reference Guide
Command Reference Guide
Migration Guide
DBMS Authentication106763433
Page 40 of 44
6 QUALITY ISSUES
Look at the component from the QA point of view. Suggest any special tests
that will stress the component. Think how to make the component NOT work
and what special tests should be performed on this component. This is a
guideline to the QA testing procedures.
6.1 UNIT TESTING SUMMARY
Testing individual functions or subroutines in isolation is called unit testing. Unit
testing in some cases requires the developer to use stubs and drivers. Describe
the unit testing you did in these sections. Attach all unit tests to the wiki page for
this feature so that they are available to QA.
6.1.1
Unit Testing Description
List and unit testing planned or done.
Click here to begin typing
6.2 HANDOFFQA IMPACT
In this section you should document expected or observed diffs in HandofQA
caused by the feature as well as other things that impact HandoffQA; should any
new tests be added to HandoffQA for this feature to prevent regression?
6.3 TESTING RECOMMENDATIONS
Suggest other additional function tests that are necessary. Special test
requirements, for example: the security levels, hardware or software
configurations, code page and multiple code pages, multi-system issues. NOTE:
anything that cannot be tested in a lab and which might require field tests. What
can go wrong? How are these situations dealt with?
Testing scenarios should be reasonably obvious. Some specifics to test:

New client using -user connecting to old installation, or to non-dbauth
server. (Should work with password being the OS password, assuming
the user is a valid Ingres + OS user.)
DBMS Authentication106763433
Page 41 of 44

ODBC / JDBC / .NET connections to a non-OS user using dbauth.

Various combinations of supplying / omitting password when connecting
to authentication-required / optional user in a dbauth server.

Verify that local connection to auth required user in dbauth server fails.

Verify that old style DBMS password is ignored by dbauth server (dbms
password conn parameter, or -P option for command line tools). Note
that it's OK for the password prompt to occur, not OK for the server to
ever reject a connection because of it.

Verify basic operation of dbauth Star with dbauth Ingres LDB servers.

Might be useful to experiment with dbauth Star and non-dbauth LDB
server such as a MS gateway to make sure it works as long as
passwords are compatible.
6.4 REGRESSION RISK ASSESSMENT
What would be the implications of failure in the component? Is the code
complex? What is the potential for destabilizing existing functions?
What other areas of the product/component interact with this module?
Unexpected code de-stabilization is unlikely because the code changes are
relatively small and localized. The greatest risk is that the spec has overlooked
something important and that we are painting ourselves into a corner somehow.
6.4.1
Backward Compatibility Issues
Is there anything that should be tested for backward compatibility? Does this
feature affect how a down-rev client connects the current version of the DBMS?
Did the GCA protocol level change? Is upgradedb required?
No problems expected, but this will need to be tested! E.g. Ingres 2.6 client
against a new dbauth server.
DBMS Authentication106763433
Page 42 of 44
7 PACKAGING AND INSTALLATION IMPACT
Indicate any special packaging or installation requirements. Detail what the
packaging and installation requirements, if any, will be. Detail any new files that
are required, remember they should be added to the manifest, you are
responsible for doing this as part of the project.
No change to packaging, but installer/setup scripts may prompt for default
authentication mechanism (with suitable wording), for example:
Authentication mechanism for server: DBMS Authentication (default) |
Traditional Ingres or possibly Operating System Authentication
(traditional)
Whilst individual servers can be configured, it makes sense for the installer to
treat this as a global setting. Individual server dbauth variance is unlikely to be
useful with DBMS servers; it's likely to be more common with gateways, which
are not installed in the same package as the DBMS.
DBMS Authentication106763433
Page 43 of 44
8 SUPPORT IMPACT
Detail any diagnostics or trace facilities built in to the component including new
IMA objects, trace points, or other build time or run-time diagnostics. NOTE:
anything that could be made into a good supportability tool. NOTE: components
that are:

Difficult to diagnose (for example: no tracing facility, dependent on specific
timing)

Difficult to service
Include workarounds where appropriate.
No new diagnostics or trace points are envisioned. Existing GCA tracing
capabilities should suffice.
8.1 EXAMPLES AND TESTS
Detail any example or test code that you wrote during the development of the
feature that may be useful to help support, QA, or customers to understand the
feature or useful to QA for testing. Attach all example and test code or details to
the wiki page for this feature
DBMS Authentication106763433
Page 44 of 44
Download