CREATE TABLE SYS.SYSTABLEPERM ( stable_id UNSIGNED INT NOT NULL, grantee UNSIGNED INT NOT NULL, grantor UNSIGNED INT NOT NULL, ttable_id UNSIGNED INT NOT NULL, selectauth CHAR(1) NOT NULL, insertauth CHAR(1) NOT NULL, deleteauth CHAR(1) NOT NULL, updateauth CHAR(1) NOT NULL, updatecols CHAR(1) NOT NULL, alterauth CHAR(1) NOT NULL, referenceauth CHAR(1) NOT NULL, PRIMARY KEY ( stable_id, grantee, grantor ), FOREIGN KEY ( stable_id ) REFERENCES SYS.SYSTABLE ( table_id ), FOREIGN KEY future ( ttable_id ) REFERENCES SYS.SYSTABLE ( table_id ), FOREIGN KEY grantee ( grantee ) REFERENCES SYS.SYSUSERPERM ( user_id ), FOREIGN KEY grantor ( grantor ) REFERENCES SYS.SYSUSERPERM ( user_id ) )
Permissions given by the GRANT command are stored in SYSTABLEPERM. Each row in this table corresponds to one table, one user ID granting the permission (grantor) and one user ID granted the permission (grantee).
There are several types of permission that can be granted. Each permission can have one of the following three values.
N No, the grantee has not been granted this permission by the grantor.
Y Yes, the grantee has been given this permission by the grantor.
G The grantee has been given this permission. In addition, the grantee can grant the same permission to another user
The grantee might have been given permission for the same table by another grantor. If so, this information would be recorded in a different row of SYSTABLEPERM.
stable_id The table number of the table or view to which the permissions apply.
grantor The user number of the user ID granting the permission.
grantee The user number of the user ID receiving the permission.
ttable_id In the current version of Sybase IQ, this table number is always the same as stable_id.
selectauth (Y/N/G) Indicates whether SELECT permission has been granted.
insertauth (Y/N/G) Indicates whether INSERT permission has been granted.
deleteauth (Y/N/G) Indicates whether DELETE permission has been granted.
updateauth (Y/N/G) Indicates whether UPDATE permission has been granted for all columns in the table. (Only UPDATE permission can be given on individual columns. All other permissions are for all columns in a table.)
updatecols (Y/N) Indicates whether UPDATE permission has only been granted for some of the columns in the table. If updatecols has the value Y, there will be one or more rows in SYSCOLPERM granting update permission for the columns in this table.
alterauth (Y/N/G) Indicates whether ALTER permission has been granted.
referenceauth (Y/N/G) Indicates whether REFERENCE permission has been granted.