I want to Password protect my Database

I was able to password protect my database upon opening in Pan 6.
Upon opening it would come up with a dialog box asking for my User ID and Password. It worked well.
Could you please tell me how to do the same to my file in Pan X?

Panorama X has a new system for database security. Instead of asking you to log on each time, you can now lock the database to your Panorama X account. So if you are logged on, you can open the database, if not, you can’t. Also, unlike Panorama 6, this new system can provide true encryption.

There isn’t any documentation for this system yet (not even a video), but I can give you the gist fairly quickly. To protect a database, choose File>Database Options, then choose the Security panel.

To lock the database, just check the Lock Database to Account option, as shown above. Usually, you would also want to check the encryption options so that someone can’t come along with a file dumping tool and try to see what is inside the database.

The Database Entitlements grid allows you to assign what activities are allowed depending on how you are logged in. You can set up multiple passwords for different roles – user, developer or administrator. See this help page for more information about account roles. (Most of you haven’t set up separate roles, so you are automatically the administrator for your account.)

In the example above, anyone that is logged onto this Panorama X account can open the database. But if the computer is not logged into the account, the database can’t be opened. If they try, an alert will appear telling them that they do not have sufficient privileges to access the database.

This example assumes that a separate administrator role has been set up, and only someone logged in as the administrator can actually modify the database design (edit procedures and forms). Also, in this case, a non-administrator user cannot use Panorama’s standard menus – they will only be able to use custom menus and buttons the administrator has set up for them.

1 Like

Very Nice. Thanks Jim for the great explanation. One more thing. I bought the license for 5 years. I have Pan X on my IMac at my store. Can I install it also on my IMac at home so I can work on the database there still with the security feature?

Jerry Jambazian

Yes. You will automatically be able to open the database on any computer that is logged into the same account, and not be able to open it on any other computer.

Is there a way to lock the database so that someone with the User role cannot adjust the actual data?
I’m looking for an easy way to create basically a read-only version of a file based on login credentials.


No, there is no entitlement for writing data.

However, you could set all the data sheet fields to be not editable, and any visible forms to have only Text Display objects, not Text Editors. That would prevent someone from modifying the database.

I’m totally green with this application, I’m just looking for a few specific answers so I apologize for the noob type questions.
It seems if I set a data sheet field to not editable, then NOBODY can edit it.
We have someone that has to make daily edits to the data file.
I guess what I’m looking for is a way for that person to make changes easily, but make the file read only for anyone else that opens it.
We’ve lived without that functionality so far, it’s just a request. If the answer is, “No”, or “Not easily”. That’s fine, it’s just an icing request.


I can think of a few possible solutions, but at a minimum, you have the Permissions built into the OS. Use Get Info on the database and set it to Read Only for most users, and give Read and Write privileges to those authorized to make changes.

Here is a solution you can incorporate into your .Initialize procedure that runs when the file starts up.

fileglobal PrimeUsers
PrimeUsers={Bob Blahblah
Clark Kent
Red Rider}
If arraycontains(PrimeUsers,info("user"),¶)
    looparray info("fields"),¶,element,index
        Field (element)
        setfieldproperties initializedictionary("EDITABLEINDATASHEET","Yes")
    looparray info("fields"),¶,element,index
        Field (element)
        setfieldproperties initializedictionary("EDITABLEINDATASHEET","No")

Any name you have listed for the PrimeUsers will be able to edit all the fields. If the user is not on the list they will not be able to edit any field and only have read privilages. Basically you use the looparray statement with the list of all the database’s fields and change the properties option for EDITABLEINDATASHEET on each field to Yes or No depending upon the current user.

Ah, that brings back childhood memories!