Configuration of Authorization for Adabas Utilities

The configuration of security for utilities is stored in the following files:

  • adaauth.ini

  • adaaudit.ini

  • adarbac.ini

These files configure the security for a local machine and apply to all databases, to all product installations and product versions that are greater than or equal to Version 6.5 on the machine.

These are ASCII files, which can be edited with a standard text editor.

graphics/auth_utils_conf.png


Location of Configuration and Logging Files

The configuration file adaauth.ini is located centrally. The location is platform-specific and is fixed; e.g. cannot be modified. Initially, the files adaaudit.ini and adarbac.ini are also located in the predefined location. These files can be moved as required to other locations.

File Description Fixed Location
adaauth.ini Configuration Definitions Yes
adarbac.ini Security Definitions No
adaaudit.ini Audit Log Configuration No
adaaudt.log Audit Log No

Note:
It is mandatory that all users, which are authorized to execute an Adabas utility, have READ/WRITE access permissions to both the LOG_FILE and the directory in which it is located.

On Windows

The configuration and audit log files are installed into the following locations:

%PROGRAMDATA%\Software AG\Adabas\auth
     adaauth.ini
     adarbac.ini
     adaaudit.ini
%PROGRAMDATA%\Software AG\Adabas\log
     adaaudit.log

On UNIX / Linux

The configuration and audit log files are installed into the following locations:

/etc/softwareag/Adabas/auth
     adaauth.ini
     adarbac.ini
     adaaudit.ini
/var/log/softwareag/Adabas
     adaaudit.log

File and Directory Permissions

Important:
The configuration and audit log files mentioned above are installed without restrictive file permissions. Please refer to Security Considerations in the section Adabas Security Facilities of the Administration documentation, for further details on how to secure (“harden”) the dataset.

All users of Adabas utilities require the following minimal file and directory permissions:

  1. READ-privileges to the configuration files.

  2. WRITE-privileges to the Audit Log File (LOG_FILE setting)

  3. WRITE-privileges to the directory in which the Audit Log File is located.

adaauth.ini

The configuration file adaauth.ini contains information which applies to the machine and to all databases, to all product installations and product versions that are greater than or equal to Version 6.5 on the machine.

This file contains the following basic security definitions:

  • The location of the security configuration definitions.

  • The location of the audit configuration file.

Structure of adaauth.ini

The configuration file adaauth.ini contains a single section with the topic AUTHZ.

The section starts with a line containing the name of the topic enclosed in square brackets, using the syntax [topic-name]. The topics relevant to security definitions are:

  • AUTHZ, with items

    • ACTION

    • AUDIT_FILE

    • MODE

    • RBAC_FILE

Topic: AUTHZ

The topic AUTHZ contains information used to configure security for the local machine.

The syntax for the topic AUTHZ is as follows:

[AUTHZ]
  ACTION     = <activation of feature>
  MODE       = <source of definitions>
  AUDIT_FILE = <path to adaaudit.ini>
  RBAC_FILE  = <path to adarbac.ini>
[AUTHZ-END]

Item: ACTION

The item ACTION activates the authorization for Adabas utilities feature.

  • YES
    enables the feature.

  • NO
    disables the feature.

The default setting is NO.

Important:
The item ACTION will be depreciated in a future release.

Item: MODE

The item MODE defines the source of the security definitions.

  • ADABAS
    The security definitions are defined in the RBAC system file.

  • INI
    The security definitions are defined in configuration files.

Item: AUDIT_FILE

The item AUDIT_FILE defines the location of the file adaaudit.ini, which contains the configuration of the audit processing; e.g. the layout and location of the audit log.

Item: RBAC_FILE

The item RBAC_FILE defines the location of the file adarbac.ini, which contains the security definitions for the usage of database utilities.

adaaudit.ini

The configuration file adaaudit.ini contains information which applies to the machine and to all databases, to all product installations and product versions that are greater than or equal to Version 6.5 on the machine.

This file contains the following information:

  • Basic configuration audit file processing; e.g. the layout and location of the audit log.

Structure of adaaudit.ini

The configuration file adaaudit.ini contains a single section with the topic AUDIT.

The section starts with a line containing the name of the topic enclosed in square brackets, using the syntax [topic-name]. The topics relevant to security definitions are:

  • AUDIT, with items

    • FORMAT

    • LOG_FILE

    • SEPARATOR

Topic: AUDIT

The topic AUDIT defines the parameters of the Audit Log.

The syntax for the topic AUDIT is as follows:

[AUDIT]
  FORMAT    = <file layout>
  SEPARATOR = <token separator>
  LOG_FILE  = <log file name>
[AUDIT-END]

Item: FORMAT

The item FORMAT defines the layout of an audit log entry.

  • TEXT
    All values in the audit entry are preceded by a header and separated by blanks.

  • CSV
    All values in the audit entry are separated by the separator value.

Item: SEPARATOR

The item SEPARATOR defines the character to be used to separate values in CSV format.

Valid parameter values for SEPARATOR are:

Parameter Value Description
"," Comma
";" Semi-Colon
"/t" Tabulator
" " Blank (Default)

The parameter value must be quoted.

Note:
The parameter value for Tabulator is the string "/t".

Item: LOG_FILE

The item LOG_FILE defines the location and file name of the audit log.

The items in the log file entry depend upon value set in the item FORMAT. They are thus either prefixed and separated by blanks (FORMAT=TEXT) or are separated by the chosen separator value without a prefix (FORMAT=CSV plus value selected in SEPARATOR).

Prefix Value Description
  2016-06-02T14:48:19Z Timestamp
HOSTNAME= <hostname> Hostname of Machine
OSVERSION= <operating_system> Name and Version of operating system
  %AUTHORIZATION-x Message indicator: (I)nformation or (E)rror
USER=

Unix: <user>

Windows: <domain>/<user>

Name of user account
OPERATION= <operation> Name of attempted operation
DBID= <number> Database ID
AUTHORIZED= YES|NO Result of Authorization Request

adarbac.ini

The configuration file adarbac.ini contains information which applies to the machine and to all databases, to all product installations and product versions that are greater than or equal to Version 6.5 on the machine.

This file contains the security definitions for the usage of database utilities; e.g.:

  • User/Role assignments

  • Role/Permission assignments

  • Permissions, definitions of permitted operations on objects

  • Object definitions

  • Operation definitions

Structure of adarbac.ini

The configuration file adarbac.ini is divided into sections, with one or more topics per section. Each section of the file starts with a line containing the name of the topic enclosed in square brackets, using the syntax [topic-name]. The relevant topics are:

Topic Description
USER_ROLE Definition of users and the assignment of roles.
ROLE_PERMISSION Definition of roles and the assignment of permissions.
PERMISSIONS Definition of permissions and the assignment of operations and an object, on which the operations may be performed.
OBJECTS Definition of objects and the assignment of database IDs.
OPERATIONS Definition of operations and the assignment of Adabas utilities.

Topic: USER_ROLE

The topic USER_ROLE contains the assignment of roles to user accounts.

The syntax for the topic USER_ROLE is as follows:

[USER_ROLE]
  <user_name> = <role_assignments> 
[USER_ROLE-END]

The USER_ROLE topic may contain one or more USER_ROLE definitions, each of which assigns one or more roles to a user_name.

Item: USER_ROLE Definition

A USER_ROLE definition assigns one or more roles to a user_name and is an item in the USER_ROLE topic.

The syntax for a USER_ROLE definition item is as follows:

<user_name> = <role_name [,<role_name>] >

The value of the user_name can either be:

  • The name of the user (on Windows the domain\user) that is associated with the session and which has been validated by the operating system or

  • an asterisk (*) implying all users.

Note:
The values of user_name are case-insensitive, thus uppercase and lowercase user_name values are considered to be equal.

The value of the role_name can be any of the following:

  • The name of a ROLE_PERMISSION definition.

  • A comma separated list of ROLE_PERMISSION definitions.

Topic: ROLE_PERMISSION

The topic ROLE_PERMISSION contains the assignment of permissions to roles.

The syntax for the topic ROLE_PERMISSION is as follows:

[ROLE_PERMISSION]
  <role_name> = <permission_assignments>
[ROLE_PERMISSION-END]

The ROLE_PERMISSION topic may contain one or more ROLE_PERMISSION definitions, each of which assigns one or more PERMISSION definitions to a role_name.

Item: ROLE_PERMISSION Definition

A ROLE_PERMISSION definition assigns one or more roles to a role_name and is an item in the ROLE_PERMISSION topic.

The syntax for a ROLE_PERMISSION definition item is as follows:

<role_name> = <permission_name [,permission_name] >

The value of the permission_name can either be:

  • The name of a PERMISSIONS definition,

  • A comma separated list of PERMISSIONS definitions.

Topic: PERMISSIONS

The topic PERMISSIONS contains the assignment of objects and operations to permissions. Each entry defines a tuple of permitted operations, which may be performed on a specific set of objects.

The syntax for the topic PERMISSIONS is as follows:

[PERMISSIONS]
  [<permission_definition>] 
[PERMISSIONS-END]

The PERMISSIONS topic may contain one or more PERMISSION definitions.

Sub-Topic: PERMISSION Definition

Each PERMISSION definition is a sub-topic to the PERMISSIONS topic and is identified by a unique name and contains an OBJECT and an OPERATION item, which are defined in the appropriate sections of the file.

The name of the PERMISSION definition must be unique and must be enclosed in brackets, as it is a sub-topic.

The syntax for the topic PERMISSION definition sub-topic is as follows:

[<permission_name>]
  OPERATION = <operation_name>
  OBJECT    = <object_name>
[<permission_name>-END]

Each PERMISSION definition must contain one OPERATION item and one OBJECT item:

  • The value of an OPERATION item is the name of an OPERATION definition, which defines the operations that may be performed.

  • The value of an OBJECT item is the name of an OBJECT definition, on which the operations may be performed.

Topic: OBJECTS

The topic OBJECTS contains one or more OBJECT definitions. Each entry may be used in one or more PERMISSION definitions and assigns one or more database IDs to an object_name.

The syntax for the topic OBJECTS is as follows:

[OBJECTS]
  <object_definitions>
[OBJECTS-END]

Sub-Topic: OBJECT Definition

Each OBJECT definition is a sub-topic to the OBJECTS topic and is identified by a unique name and contains a DBID item.

The name of the OBJECT definition must be unique and must be enclosed in brackets, as it is a sub-topic.

The syntax for the topic OBJECT definition sub-topic is as follows:

[<object_name>]
  DBID = <number> [, <number>] [, <number>-<number>]
[<object_name>-END]

Each OBJECT definition must contain a DBID entry which can be:

  • A single database ID,

  • A comma separated list of database IDs,

  • A range of database IDs separated by hyphen-symbol (‘-‘),

  • A combination of a list and a range of database IDs, or

  • An asterisk (*) implying all database IDs.

Topic: OPERATIONS

The topic OPERATIONS contains one or more OPERATIONS definitions. Each entry may be used in one or more PERMISSION definitions and assigns one or more utility operations to an operation_name.

The syntax for the topic OPERATIONS is as follows:

[OPERATIONS]
  <operation_definitions>
[OPERATIONS-END]

The OPERATIONS topic may contain one or more OPERATION definitions.

Item: OPERATION Definition

An OPERATION definition is an item and assigns one or more utility operations to a unique name. Each OPERATION definition is used as value in a PERMISSION definition.

The name of the OBJECT definition must be unique and must be enclosed in brackets, as it is a sub-topic.

The syntax for the topic OPERATION definition is as follows:

<operation_name> = <utility_name [, <utility_name>]>

The value of the operation_name can be any of the following:

  • The name of an Adabas utility,

  • A comma separated list of names of Adabas utilities.

Below is a list of valid Adabas utility names:

Value Description
ada.uti.bck Backup and restore database or files
ada.uti.dbm Database modification
ada.uti.ela Configure Adabas Analytics
ada.uti.fdu File definition
ada.uti.frm Format and create a new database
ada.uti.opr Operator utility
ada.uti.ord Reorder the database or export / import files
ada.uti.rba Administration of RBAC definitions
ada.uti.rec Recovery of database or files
ada.uti.rep Database report
ada.uti.scr Manages and enables security functionality
ada.uti.uld File unloading

Note:
The values of utility_name are case-sensitive. Invalid entries will result in a processing error; e.g. invalid permissions.

Limitations and Restrictions

The following limitations and/or restrictions apply to entries in the adarbac.ini file.

Description Limitation / Restriction
Line Must not exceed a maximum of 2064 characters.
Value Must not exceed a maximum of 2036 characters.
Name of a USER Must not exceed a maximum of 128 characters.
Name of a ROLE Must not exceed a maximum of 32 characters.
Name of a PERMISSION Must not exceed a maximum of 19 characters.
Name of an OPERATION Must not exceed a maximum of 128 characters.
Name of an OBJECT Must not exceed a maximum of 19 characters.
File Path Must not exceed a maximum 255 characters.
File Name Must not exceed a maximum 32 characters.
Value, Embedded Whitespace Value must be enclosed with the quote character (‘”’).
Value, List of Values Multiple values are separated commas (‘,’).
Value, Range of Values The asterisk character ‘*’ indicates a range of all valid values. The usage is restricted to USER_ROLE and DBID entries.
Line, Continuation Character Not available; entries are limited to the contents of a line.
Comment Line Comments start with the hash symbol (‘#’).
Line-Comment The comment begins with the first whitespace.
Duplicate Entries Previous entry values are overwritten by the duplicate entry. The last entry value is used.

Samples: adarbac.ini

Sample: Unrestricted Access (Legacy)

The security definitions provided below implement an unrestricted access:

###
###  SAMPLE:   Access Permissions (Unrestricted Access)
###
###  Users:   Generic Definition
###
###  Roles:   DBADMIN          Administrator (Database)
###           FILEADMIN        Administrator (File)    
###           DBREPORT         Reporting     (Database)
###           USER             User          (Database)
###
###  Role Assignment:
###           All users are assigned all roles
###           which provides the user with the permissions 
###           to execute operations as was in previous product releases
###
###

### Generic definition of Users and the Assignment of Roles
[USER_ROLE]
    * = DBADMIN,FILEADMIN,REPORTER,USER
[USER_ROLE-END]

### Assignment of Permissions to Roles
[ROLE_PERMISSION]
    DBADMIN = DBADMIN_PERM
    FILEADMIN = FILEADMIN_PERM
    REPORTER = REPORTER_PERM
    USER = USER_PERM
[ROLE_PERMISSION-END]

### Definition of Permissions - Tuples of Operations on Objects
[PERMISSIONS]
	[DBADMIN_PERM]
		OBJECT = OBJECT_ANY
		OPERATION = ALL_OPERATIONS
	[DBADMIN_PERM-END]
	[FILEADMIN_PERM]
		OBJECT = OBJECT_ANY
		OPERATION = FILE_OPERATIONS
	[FILEADMIN_PERM-END]
	[REPORTER_PERM]
		OBJECT = OBJECT_ANY
		OPERATION = REPORT_OPERATIONS
	[REPORTER_PERM-END]
	[USER_PERM]	
		OBJECT = OBJECT_ANY
		OPERATION = USER_OPERATIONS
	[USER_PERM-END]	
[PERMISSIONS-END]
	
### Definition of Objects                                   
[OBJECTS]
	[OBJECT_ANY]
		DBID = *
	[OBJECT_ANY-END]
[OBJECTS-END]

### Definition of Operations
[OPERATIONS]
	 ALL_OPERATIONS = ada.uti.bck,ada.uti.dbm,ada.uti.ela,ada.uti.fdu,ada.uti.opr,ada.uti.ord,ada.uti.rba,ada.uti.rec,ada.uti.rep,ada.uti.scr,ada.uti.uld
	 FILE_OPERATIONS = ada.uti.fdu,ada.uti.ord,ada.uti.uld
	 REPORT_OPERATIONS = ada.uti.rep
	 USER_OPERATIONS = ada.uti.none
[OPERATIONS-END]

### EOF

Sample: RBAC Security

The security definitions provided below implement the Least Amount of Privileges:

###
###  SAMPLE:  RBAC Security (LEAST AMOUNT OF PRIVILEGES)
###
###  Users:   Explicitly Defined
###
###  Roles:   DBADMIN          Administrator (Database)
###           FILEADMIN        Administrator (File)    
###           DBREPORT         Reporting     (Database)
###           USER             User          (Database)
###
###  Role Assignment:
###           Each user is explicitly defined and is assigned the minimum of roles and privileges.
###           This enables the implementation of a "Least amount of Privileges" RBAC Security model.
###

### Explicit definition of Users and the Assignment of Roles
[USER_ROLE]
   USRDBADMIN   = DBADMIN                                  
   USRFILEADMIN = FILEADMIN                                
   USRDBREPORT  = DBREPORT                                 
   USR0001      = USER                                     
[USER_ROLE-END]

### Assignment of Permissions to Roles
[ROLE_PERMISSION]
   DBADMIN = DBADMIN_PERM
   FILEADMIN = FILEADMIN_PERM
   REPORTER = REPORTER_PERM
   USER = USER_PERM
[ROLE_PERMISSION-END]

### Definition of Permissions - Tuples of Operations on Objects
[PERMISSIONS]
  [DBADMIN_PERM]                                            
    OBJECT = OBJECT_ANY                                     
    OPERATION = ALL_OPERATIONS                              
  [DBADMIN_PERM-END]                                        
                                                            
  [FILEADMIN_PERM]                                          
    OBJECT = OBJECT_ANY                                     
    OPERATION = FILE_OPERATIONS                             
  [FILEADMIN_PERM-END]                                      
                                                            
  [DBREPORT_PERM]                                           
    OBJECT = OBJECT_ANY                                     
    OPERATION = REPORT_OPERATIONS                           
  [DBREPORT_PERM-END]                                       
                                                            
  [USER_PERM]                                               
    OBJECT = OBJECT_ANY                                     
    OPERATION = USER_OPERATIONS                             
  [USER_PERM-END]                                           
[PERMISSIONS-END]                                           
                                                            
### Definition of Objects                                   
[OBJECTS]                                                  
  [OBJECT_ANY]                                              
    DBID = *
  [OBJECT_ANY-END]
[OBJECTS-END]

### Definition of Operations
[OPERATIONS]
	 ALL_OPERATIONS = ada.uti.bck,ada.uti.dbm,ada.uti.ela,ada.uti.fdu,ada.uti.opr,ada.uti.ord,ada.uti.rba,ada.uti.rec,ada.uti.rep,ada.uti.scr,ada.uti.uld
	 FILE_OPERATIONS = ada.uti.fdu,ada.uti.ord,ada.uti.uld
	 REPORT_OPERATIONS = ada.uti.rep
	 USER_OPERATIONS = ada.uti.none
[OPERATIONS-END]

### EOF