Create GRANTs for Imported Objects (Project)
Applies to
Platform: Oracle
Create GRANTs for Imported Objects (CreateGrantsForImportedObjects) lets the deployment of an Oracle project grant its imported objects to its layer users. Keep it true when your deployment may connect as the users of the linked project. Set it to false when the grants exist already, for example because your database administrator created them.
The property matters only in projects that use model objects from a linked project, see Use Linked Projects.
Values
A checkbox in the Technology group of the Additional Settings in Project Settings:
true(default): the deployment grants the imported objects.false: the deployment grants nothing for imported objects.
Effect on generated output
With true, SQL\deploy_all_layers.sql starts with a GRANT block. For each linked layer it connects as the user of that layer and runs GRANT SELECT ... WITH GRANT OPTION on every imported object the project uses. The grantee is the user of the consuming layer. The replacement configuration then has all six connection variables of each linked layer, including its password.
With false, the GRANT block is missing, and only the schema_name variable of each linked layer remains.
Example
A Data Mart project uses Business Vault and Raw Vault objects of a linked Data Vault project. With true its deployment script starts like this:
-- GRANTs for objects from BusinessVault
conn <business vault user>/<password>@<host name>:<port>/<service>
-- GRANTs to layer Mart
GRANT SELECT ON BDV_CURRENT_CUSTOMER
TO <mart user> WITH GRANT OPTION;
...
-- GRANTs for objects from RawVault
conn <raw vault user>/<password>@<host name>:<port>/<service>
Here <service> is the service name. The deployment granted 17 Business Vault objects and one Raw Vault object to the Mart user, then created the Mart layer without errors.
Related articles
- Reference: Oracle - Placeholder values, Database Links for Source Systems (Project)
- See also: Use Linked Projects, Oracle - Artifacts, Oracle - Deployment