In OpenEdge 11.0, we introduced support for Foreign Constraints in the DataServers for MSS and Oracle. However, from the MSS side, a part of this support involves creating a new procedure known as _CONSTRAINT_INFO in the foreign database during a schema pull operations (e.g. via the Create DataServer Schema utility). This procedure is created and dropped during the schema pull process.

Creating a schema holder from existing MS SQL Server database requires a user to be able to view meta-schema of the MS SQL Server Database for tables, stored procedures and views. The minimum privileges required for a user to have read-only privileges to the meta-schema is VIEWDefinition on the Database scope. This will allow a user to create schema holder from a MS SQL Server database. For the schema pull operation to be successful, the MS SQL Database user must have EXECUTE, ALTER ON SCHEMA, and CREATE PROCEDURE privilages. Apart from this, the user should also have db_datareader and db_datawriter roles membership on the MS SQL server.

Once the schema holder creation is complete, revoke the EXECUTE, ALTER ON SCHEMA, and CREATE PROCEDURE privileges.

Note: If the SQL Server user performing the pull has limited privileges, then the pull can fail with one or more of the following errors:
  • [SQL Server]The EXECUTE permission was denied on the object _Constraint_Info , database <test>, schema <dbo>.
  • [SQL Server]The specified schema name <dbo> either does not exist or you do not have permission to use it.
  • [SQL Server]Could not find stored procedure '_Constraint_Info'.