Explanation about the Fileaccess field in HARVERSIONDATA

Document ID : KB000048918
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Explanation of the fileaccess field in the HARVERSIONDATA table of the database.

How the permissions are set?

For example we have the below in the HARVERSIONDATA


SQL> select FILEACCESS,count(*) from HARVERSIONDATA group by FILEACCESS;
FILEACCESS                    COUNT(*)
--------------------------- ----------
v--v--v--                        39262
v--v-xv-x                            1
v-xv-----                            1
v-xv--v--                           45
v-xv-xv-x                           74
ve-------                            4
ve-v--v--                         8806
ve-ve-ve-                           37
vexv--v--                            5
vexv-xv-x                          301
vexvexvex                            1
                                             1
12 rows selected.
SQL>

Solution:

Fileaccess is maintained for any new version created during a check in operation.

SCM maintains the permissions for the file as they were found on the OS during the checkin. During checkout, the owner, group and other permissions are calculated based on the type of check out operation "browse" or "update".

The settings are:


 v = read access       
 e = edit access 
 x = execute for Owner, Group, Other

The fileaccess string is based on operating system file system when the file was checked in.

The format here is UNIX-style : 9 characters; first 3 characters are owner access, next 3 are same group user access, last 3 are others access.

So for example : "v - x v - - v - -" means this file is viewable to all users but only could be executed by owner.

The access stored in the database should be exactly the same as in OS before it is checked in.

The access stored in the database won't get changed when a file is checked out, no matter which mode was used.

The default record ( for all path version, versiondataobjid=0 ) will have an empty access string because it is meaningless for the current design.