MS SQL Server for CrowdID
Follow the steps below to connect CrowdID to MS SQL Server.
1. Configure SQL Server
Create a database user which CrowdID will connect as (e.g. crowduser).
In SQL Server, the database user (crowduser above) should not be the database owner, but should be in the
db_owner role
.- Create a database for CrowdID to store data in (e.g. crowdiddb). This must be a different database to the one used by Crowd.
- Ensure that the user has permission to connect to the database, and create and populate tables.
2. Copy the SQL Server Driver to your Application Server
Download the SQL Server JDBC driver from JTDS (recommended, assumed below), or I-net software(commercial).
- Add the SQL Server JDBC driver JAR (
jtds-[version].jar
) to the following directory:- Crowd 2.0.2 or later: {
CROWD_INSTALL}/apache-tomcat/lib/
. - Crowd 2.0.1 or earlier: {
CROWD_INSTALL}/apache-tomcat/common/lib/
.
- Crowd 2.0.2 or later: {
3. Configure your Application Server to Connect to SQL Server
Edit the
conf/Catalina/localhost/openidserver.xml
file and customize the username, password, driverClassName and urlparameters for the Datasource.<Context path="/openidserver" docBase="../../crowd-openidserver-webapp" debug="0"> <Resource name="jdbc/CrowdIDDS" auth="Container" type="javax.sql.DataSource" username="[enter db username here]" password="[enter db password here]" driverClassName="net.sourceforge.jtds.jdbc.Driver" url="jdbc:jtds:sqlserver://localhost:1433/crowdiddb" [ delete the minEvictableIdleTimeMillis, timeBetweenEvictionRunsMillis and maxActive params here ] /> <Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/> </Context>
- Delete the minEvictableIdleTimeMillis, timeBetweenEvictionRunsMillis and maxActive attributes (which are only needed for HSQL, and degrade performance otherwise).
4. Configure CrowdID to use MS SQL Server
Edit the
build.properties
file (located in the root of the Crowd distribution) and modify the hibernate.dialect to the following:hibernate.dialect=org.hibernate.dialect.SQLServerDialect
- Then run
./build.sh
orbuild.bat
. This will configure CrowdID to use the MS SQL Server dialect.
If you do not wish to edit this file and run the build script, you can edit the jdbc.properties
file (which the above script modifies) directly. The jdbc.properties
file is located here: crowd-openidserver-webapp\WEB-INF\classes\jdbc.properties
. Modify the file to the following:
# - Crowd Configuration Options
hibernate.connection.datasource=java\:comp/env/jdbc/CrowdIDDS
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory
...
Next Steps
You should now have an application server configured to connect to a database, and CrowdID configured to use the correct database. Now start up CrowdID and watch the logs for any errors.