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>
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.