Help

Re: Is it possible to KEEP SOMEONE OUT of an Airtable base?

Solved
Jump to Solution
919 0
cancel
Showing results for 
Search instead for 
Did you mean: 

Earlier today I responded to a question from a new user here, explaining how she could hide a field on a locked view and keep the field hidden from non-creator users by making it visible only on a personal view configured by the creator. I then had to add that this is security theater (I think that’s the phrase we use these days) because in truth, any user with editor or commenter privileges can simply duplicate the locked view as a new personal view, which they can then configure to their heart’s content–including making visible the fields that the base creator wanted hidden.

After posting my response, I began to feel uneasy, so I looked into this a little more deeply than I have before, and I’m a bit disappointed by what I’ve found. I’m praying someone here tells me that I didn’t look deep enough–that there are better answers to my concerns. But at the moment it appears that base creators have only a very limited, casual sort of control over who gets into their bases.

.

Nightmares

Consider this scenario. I develop a base for a law firm. I’m the creator, my contact at the law firm is the Owner, and the half dozen users in the firm are editors, because, well, because they need to be able to edit the data in the base. And let’s say that the base contains info that the law firm regards as sensitive: perhaps info about their clients, or data for a lawsuit they are working on; etc.

Now, one of the employees at the law firm is let go. Naturally, the firm’s manager (the base Owner) emails me and I remove that person’s sharing privileges. But the person calls somebody still working at the office and that person (whether maliciously or stupidly) shares the base with the ex-employee. The ex-employee is back in, thanks to a decision by somebody who perhaps should not have the authority to make that decision.

Or somebody on the other side of the lawsuit sweet talks one of the firm’s employees and they agree (again, doesn’t matter whether this is malice or mistake) to share the base with somebody who shouldn’t be allowed to view what’s in the base at all. And if these security breaches are committed by somebody with editor privileges, the person who should not have access but now does will actually be able to do things like edit records, delete records, etc.

I use the example of a law firm because most of my development work has been for law firms. But I don’t think I’ve ever developed a base for any client where the client didn’t care about controlling access.

And what if the security breach is committed by somebody with only read-only privileges? Well, even somebody with read-only privileges has the ability to share the base. Okay, fine, maybe I’m willing to live with that. The problem is, if I’m not happy about that, even as base creator there’s not a thing I can do about it.

Wow, just wow.

.

Living in the real world

Now systems like FileMaker, AppMaker, Caspio, Servoy and nearly all SQL app front ends, give developers the ability to restrict access to the databases to specific users and only those users. (I don’t understand the security models for Coda or SmartSheet well enough to comment on them.) If developers wish to authorize admin users to control access, too, they can do that. But who gets into the solution is always restricted to somebody who is, in theory at least, a responsible user. With Airtable on the other hand, granting access to the base is the prerogative of any and all users, regardless of their privileges.

Of course, I’m aware that users are always the biggest weakness in any security system. There’s always the chance that an authorized user might share his or her credentials with somebody who’s NOT supposed to have access. But doing so would be hard to do by accident. In those other systems there’s no “Share” button that invites the user to give some stranger access to the base. Since my users all log in using their email addresses, anybody who logs in using somebody else’s email address will be aware that they’re doing something fraudulent (even if they don’t realize how serious it could be). And in at least some of those systems, it’s possible to do various other things to minimize the risk of unauthorized access: require two-factor authentication to an authorized user’s mobile phone or email perhaps; and/or track IP address from which user is connecting and even restrict users on that basis.

.

My three wishes

I know that Airtable is designed to be like the friendly and convenient corner store, not like an Amazon.com distribution center that uses metal detectors and employs armed security guards. I love that about Airtable.

Still, at a minimum, I wish that any (or all) of the following were possible:

  • Creator should have option to hide the share button for all non-creator users
  • If creators aren’t given ability to decide who can share/not share the base, then read-only users absolutely should NOT have this ability. When I think “read only” I don’t think “read and make a copy for all your friends”.
  • Finally, there should be a privileges level just below Editors called perhaps “End Users”. End Users should be allowed to edit data in records but NOT edit locked views, that is, for End Users, the “create private view” button would disappear.

I gather that some greater degree of control MIGHT be achievable if I gave access to bases strictly on a view-by-view basis using links that are embedded in a web page, but for me, that dramatically limits Airtable’s appeal and potential usefulness.

Somebody is going to read this and think, “My my, he’s not a very trusting person!” Guilty as charged, your honor.

Please tell me what I’m missing!

William

30 Replies 30

Am I right in understanding that this just happened? Wow.

THIS IS HUGE.

What’s changed

So now, as of September 17, 2021:

  1. I create a new base in my Airtable Pro workspace. I’m a consulting developer.
  2. I go to Settings for that workplace and enable “Restrict adding new collaborators…”
  3. I go back to my workspace and either share the entire workspace or share an individual base with one or more of my clients as, say, editors.

Say I share the base with Clara Client, giving her editing privileges. She accepts the link, creates her login credentials, and she’s in. Now, if she wants to share the database with Cathy Colleague and give Cathy commenter privileges, she can use the Share button, but only to make a request. Threw me off for a sec that the Share button was still there in the Editor’s base, until I clicked it and saw the advisory note that explains that she can only make a request. The request is sent to me (base owner) for approval.

And if at some point, it’s necessary to remove someone’s access: I just delete them from the list of collaborators. I did this while I was connected to the base myself as my Alter Ego. The base was immediately closed on me. Excellent!

When the request comes to me as owner, I can

  • accept the request, giving the new user the privileges requested
  • accept the request but modify the new user’s privileges
  • deny the request
  • ignore the request (officially, by clicking “Ignore”)

If I approve the request, then Cathy Colleague is now invited to the base with Commenter privileges. This is awesome. Excellent. Very well done. Huge.

image

.

Cascading levels of access control?

Something else that’s absolutely awesome: After Clara Client’s request is accepted by me, Clara herself now has control over whether her own invitees retain their access. So say, Clara (with a little help from me) has got Cathy Colleague and Ellen Employee using the base, and then Ellen leaves the firm. Clara does not have to contact me to get Ellen’s access removed: She can do it herself.

I only tested this a couple hops away from myself as creator. I’m not entirely sure how it works if I share the base with Clara (boss of the billing department) and also with Kevin (office manager). If Kevin is also making sharing requests and I grant those requests, can Kevin see and remove Clara’s invitees or only his own? I’m assuming the latter but I didn’t test it out that far.

Have to say: This sort of thing is not impossible in FileMaker, but would be significantly more difficult to setup.

.

One more thing: Locking views

Actually, before I take the actions described above, I will almost certainly be going through the base’s views, and locking all the developer views that I do not want anybody to muck about with. I tested that too and it works great. I had shared base with my Alter Ego, giving Alter editor privileges. Alter was able to get into the base, and edit records including in locked views, but could not modify the locked views. Exactly as expected and as needed.

.

Counting teeth?

Okay, it’s not quite perfect, yet. For one thing it would be nice if we could create custom privilege sets, where (say) Billing Department users with Editor privileges only get to see views that pertain to Billing, while folks in the Fulfillment center only see views granted to their custom privilege set. But hey, I’m so grateful for what we just got that I’m going to promise not to mention this again for at least a week or two.

Seriously, this is huge. Major. THANK YOU AIRTABLE DEVELOPERS!

William