🛡️Roles and Row Owners DEMYSTIFIED

:wave: Hey all,

I meant to share this earlier today—I spent some time last night playing around with Row Owners and Roles (two Glide features I don’t often get the chance to use) and ended up learning quite a bit.

The result? Another tutorial video for you all about how and when to use Row Owners and Roles, their benefits and limitations. Enjoy!

Wondering WHY you can’t assign row owners to a computed column (If then else, lookup, template, etc.)? 🛡️Roles and Row Owners DEMYSTIFIED - #9 by Jeff_Hager


I wish you wouldn’t post these at the start of my working day. Now I have to wait 10-12 hours before I can watch this… grrr!

Very inconsiderate!!

:rofl: :rofl: :rofl: :rofl:


Now this will be my reference thread everytime people ask about row owners or roles. Thanks as always Bob!


Nice job!

Minor nitpick - slight slip of the tongue at 3:22 - “You can only make columns that live in your Google Sheet Row Owners”

I think what you meant to say there is you can only use basic columns as Row Owners (ie. not computed columns). Those columns can be in a Google Sheet or in a Glide Table.

For part 2, you need to cover using multiple columns for Row Owners and/or Roles :grin:

1 Like

That’s exactly what I meant. When you create a Basic Column—does it not live in your Google Sheet though? (I did reference that it can be a basic column in a Glide table).

I had planned on showing how you can create an arrayformula to populate an admin email for multiple row owner columns, but thought it best to keep it simple…def a part 2!

Thanks for the feedback!


User profiles sheets need also to set email as row owners or it is not necessary? Thanks

It’s not NECESSARY, but it’s good practice for data security. Again, setting “row owners” is very unforgiving. The moment you apply a row owners to a user profile sheet, no other user can view another’s information. So if you want to create any sort of sense of community within your app where users are viewing other users profiles etc., you would need to create a second sheet.


I assumed that with roles you could make certain information only visible to certain people. So give groups different rights. ‘This article should only be visible to management’. Is that the case too?

Great information. I also will be referring people to this post…probably often.

I just want to add the reason WHY row owners can only be applied to basic columns in a google sheet or glide table. I think what many people don’t realize is that any computed columns are actually computed on a user’s device. It may seem like it’s done on the glide server, but it’s not. This includes relations, lookups, template, math, etc. Anything that’s not a basic column.

Because of that, for example, the reason you can’t use a lookup as a row owner, is because all of the data needs to be downloaded to the user’s device before the lookup function can run. At that point you have already defeated the purpose of row owners, which is to secure data by preventing it from being downloaded to a user’s device in the first place.

Only basic column data is synced between the glide servers and each user device. All of the calculations and computed column values are only determined on the user device.


Correct. If you have a sheet called “Documents”, you could create a column called Role and place the approp role within that sheet and set it as a row owner.


I’d never really thought about why you can’t use computed columns, but it’s so obvious when you lay it out like that.


Yes roles work and function exactly the same as row owners, except instead of using an email, you can use a group name which has to match a group name defined in a Role column in the user profile sheet. Just like how the signed in user’s email has to match the email in a sheet column designated as a row owner column…a role in a sheet column designated as a row owner column will need to match to role column in the user profile sheet for the signed in user.

I believe you can intermix emails and roles in the same column and glide will check against the signed in user’s email and role from the user profile sheet.


This is correct.


That’s why everything computes so fast. It doesn’t need to send everything to the server first and wait for new calculations before returning the results to the app. It’s all done in app. Of course, basic column data is still synchronized, but speed isn’t such a high priority.


Great tutorial @Robert_Petitto !


Thanks George!

If you still want/need to lookup row owners, use the VLOOKUP-function in google sheets.

@Jeff_Hager thank you for this insight what data is loaded to the device.

I thought I can limit data traffic by filtering the data through a relation which is using a template column on both sheets.

But obviously all rows and columns from both sheets are loaded to the device if not secured separately.

Could there be a speed problem if one has many many rows and columns in those sheets?


Yes, if those rows and columns include data then the user’s device has to load that package of data. It will increase loading time.


Please help
If you have two roles i.e Admin and User
If you have 100 users.
100 users data will be downloaded in to each user device than filter specific user data?