User's Manual
Virtuoso 4.5 Application and Integration Reviewers Guide  
Copyright ©2006 OpenLink Software     
20 
restrictive by granting the module public access.  The Security of a UDT is 
maintained through normal SQL GRANT and REVOKE statements via a simple 
extension. You can define the level of access to both native and externally 
hosted UDTs. 
Step 6.  Once grants are applied, you can view the existing grants for all loaded 
modules as shown in Figure 24 – Existing Grants.  These grants can be 
removed at anytime and redefined using this screen. This also can be grants 
can also be applied via the SQL statement GRANT/REVOKE EXECUTE on 
<user_defined_type>: 
 Example: Grant Public on CLR..Point; 
Figure 23 – Applying Module Grants 
Figure 24 – Existing Grants 
The equivalent Virtuoso Procedure Language statement for defining the classes with the 
import function call is shown below in Figure 25 – SQL Equivalent Create Type in 
Virtuoso for CLR.   
Figure 25 – SQL Equivalent Create Type in Virtuoso for CLR 
create type "Point" language CLR external name 'Point/Point' 
 AS ( 
  "x" double precision external name 'x' external type 'System.Double', 
  "y" double precision external name 'y' external type 'System.Double') 
 unrestricted 
 CONSTRUCTOR METHOD "Point" ( 
 "new_x" double precision external type 'System.Double', 










