Creating a database
First, you need to create a database.
Note: Depending on your setup, you may need to create a new database or connect to an existing database.
To create a new database:
- On the computer where the Application Server is installed, install Microsoft SQL Server Native Client 2012 or later or Oracle Data Access Components (ODAC) of the same bitness with the Application Server. If you attempt to create a database without Microsoft SQL Server Native Client, you will see this error message: "Provider cannot be found. It may not be properly installed."
Note: You don't need to install Microsoft SQL Server Native Client if you have Microsoft SQL Server 2012 or later or Microsoft SQL Management Studio 2012 or later installed.
- On the computer where the Application Server is installed, open the Administration and Monitoring Console and click Service → Application Server to open the page http://<ApplicationServer>/FlexiCapture12/Monitoring/#Settings/DbConn (where <ApplicationServer> is the name of the computer on which the Application Server is installed) under the Windows administrator account:
- Click the Create New Database button.
If you are already connected to another database, you will need to close the existing sessions prior to creating a new database. If, for some reason, this is not possible or necessary, add the following key into the web.config file that is located at <IIS Root Directory (the default location is "C:\inetpub\wwwroot")>\<FlexiCapture12\Monitoring>:
<add key="IgnoreCurrentSessions" value="true"/>
In this case, a new database will be created without a warning about existing sessions. In the old database, all sessions are preserved. By default, the key is set to False and you will be prompted to close the sessions when creating a new database.
- The database creation page will open:
On this page, specify the following:
- The name of the Server instance in the format <server name>\<instance name>
- The name of the new database for Microsof SQL Server and Azure. Note the limitations imposed by Microsoft SQL Server on database names (see this Microsoft website for details)
- A user account that has necessary permissions for Microsoft SQL Server, Azure or Oracle
- A user who connects to the Oracle database must have the "DBA" WITH ADMIN OPTION role and the EXECUTE on "SYS"."DBMS_LOCK" privilege. Bear in mind Oracle restrictions regarding user names (please refer to the Oracle website).
- We recommend choosing the TCP/IP protocol rather than Named Pipes to communicate with the database server (the protocol is specified when you configure the Microsoft SQL Server client, which is installed on the computer hosting the Application Server).
- Select the Use external file storage option and specify the path to the file storage. For details, see the Setting up a file storage section.The file storage stores binary data, such as images to be processed, project settings, captured data, etc. The speed of communication between the Application Server and the file storage greatly affects the overall performance of ABBYY FlexiCapture. For this reason, we recommend placing the file storage on the same disk as the Application Server.
To achieve maximum performance in enterprise environments, we recommend using a fail-safe disk, RAID configuration, or high-performance external storage solutions. When using a high-performance disk, be sure to place the file storage on the same physical disk where you keep the IIS temporary folders.
Important! A file storage can only be created when creating a database and cannot be created later while processing documents with ABBYY FlexiCapture. You also won't be able to disconnect the file storage you connected when creating the database.
If no file storage is used, all project files are stored in the database. Note, however, that this approach is only feasible for small projects with low processing volumes. While storing project files in the database makes it easier to back up and recover your data, the size of the database may become unacceptably large, causing performance degradation.
You must add the file storage to the exceptions of your anti-virus software and the Windows search indexing service.
- Use the Test Connection button to check the entered values. If the test is successful, click OK.
If you encounter authentication problems when testing the connection, check to make sure that Mixed Authentication Mode is enabled for Microsoft SQL Server ("SQL Server and Windows authentication").
When creating a Microsoft SQL Server database, the following operations will be performed:
- A FlexiCapture12 database will be created. If server authentication is used, the database will be created using the account specified on the page that opens when you click Settings → Application Server → Connect to Existing Database/CreateNew Database in the Administration and Monitoring Console. If Windows authentication is used, the database will be created using the account under which the browser displaying the Application Server is running.
This account will be used to run the Description.sql script followed by the DBInitFill.sql script. These scripts are located in the following folder on the computer where the Application Server is installed: <IIS Root Directory (the default directory is “C:\inetpub\wwwroot”)>\FlexiCapture12\Server. The first script will create the database and the second script will populate it with data. The files named "Upgrade*.sql," which are also located in this folder, are not used for database creation.
- A new account will be added on the Database Server. This will be the account under which the FlexiCapture 12 Web Services application pool is running on the Application Server (the Network Service user account will be used default).
- The account created in step 2 will be given db_owner permissions for the FlexiCapture12 database created in step 1. For any further interaction between the Application Server and the database, the user account created in step 2 will be used. You can delete the account created in step 1 if it is no longer needed.
Permissions required for creating and configuring a Microsoft SQL database
When creating a new database:
- CREATE ANY DATABASE (required to create a new database)
- SECURITYADMIN (required to create a new user under whose account the Application Server is running)
When connecting to an existing database:
- EXECUTE ON SCHEMA::DBO
- SELECT ON SCHEMA::DBO
When installing patches, connecting to, and using the database:
- DB_DATAWRITER (DBInitFill)
- ALTER ON DATABASE::<DB_NAME> (required for specifying the recovery model and enabling Snapshot isolation)
- EXECUTE ON SCHEMA::DBO
- GRANT EXECUTE ON SCHEMA::DBO
- DB_BACKUPOPERATOR (required for creating backups and restoring the database)
- DB_ACCRESSADMIN (required for adding users to the database)
- DB_SECURITYADMIN (required for managing database permissions)
Privileges required for working with an Oracle database
Oracle database users will need the following privileges to be able to work with the database and install patches:
- CREATE SESSION
- CREATE TABLE
- CREATE VIEW
- CREATE SEQUENCE
- CREATE PROCEDURE
- CREATE TYPE
- CREATE TRIGGER
- EXECUTE ON SYS.DBMS_LOCK
- Once the database is created, the user name and the temporary password password will be displayed.
Important! The user will need to change the temporary password on the login page (http://<ApplicationServer>/FlexiCapture12/Login where <ApplicationServer> is the name of the computer on which the Application Server is installed). Once the temporary password is changed, the user will be redirected to the Administration and Monitoring Console.
- The user that creates the database automatically gets administrative privileges. The Administrator also has the permissions to change the settings of the Application Server, upload projects, grant access permissions for projects, create new users, and manage their roles and access permissions. The Administrator can grant the Administrator role to another user and delegate further configuration of the system to that user. The user that creates the database cannot be deprived of the Administrator role.