secure_scan
The secure_scan operator reads slices of a stored array based on user id and a preconfigured permissions array.
Synopsis
secure_scan(secured_array [ , strict: BOOLEAN ] );
Inputs
secured_array – An array, previously created and stored in SciDB, that has a dataset dimension (see below).
strict: BOOLEAN – When n the user has no access permission to the secured array,
strict:true
(the default) causes the query to abort with an "access denied" error, whilestrict:false
returns an empty array without raising any error.
Summary
The secure_scan operator is similar to scan, but limits access to a stored array (the secured array) based on user id, as determined by a corresponding permissions array. The secured array is divided into datasets along a dataset dimension (called dataset_id
by default). The secure_scan operator yields only those cells of the array with the dataset dimension values of the user's permitted datasets.
The permissions array lists the datatset_id
values for the datasets that users may access. For a particular secured array, the binding to a permissions array and the name of the dataset dimension are configured by the system administrator. See Configuring The secure_scan Operator .
Example
Consider a secured array secured.images
with schema
<red:int16, green:int16, blue:int16>[dataset_id=0:*:0:1; x=0:1919:0:1920; y=0:1079:0:1080]
Each chunk of this array contains a single 1920x1080 color image.
When they call secure_scan(secured.images)
, users alice and bob will each see a different subset of those images, depending on which dataset_id
values are prescribed for them in the permissions array.