This just came to me when helping my friend with his homework.
Is it possible to know our role (implicit, not know to us) role grants as full access to a full table or just to a view derived from the table?
The table [Table] contained a field[Class] indexed alphabetically, i.e., A,B,C,…,Z . The view
contained just a subset , something like [class] , with values A,B, E,G,J. Now, if I was given a role with access to the latter table with that indexing , missing letters between B,E , E and G , etc., I would suspect I have access to a view and not the whole table. Still, is there a way, maybe by joining with/to other tables of knowing that my access is restricted? Maybe joining to a table containing the same PK as [Table] , without the Class field, maybe getting some Nulls as outputs? Basically, are there ways of knowing if I am viewing a full table or just a view derived from it? Maybe by trying to do something "full tables" can do but views cannot?
EDIT: Thanks for the answers, I was thinking more of indirect ways of getting an answer, like querying other tables on joins on my present table's PK ( assuming, of course, I have SELECT access to these tables ) and getting nulls, or by doing a " Where PK is null" query and getting some answers.
Best Answer
The only thing you can see if you have restricted permissions is the type of object:
If you have only permissions on a subset of columns, you'll never figure it out using metadata (system tables/views):
Related link: Metadata Visibility Configuration