Subject | Re: [firebird-support] Re: Read only user |
---|---|
Author | Helen Borrie |
Post date | 2007-10-30T23:39:24Z |
At 06:44 AM 31/10/2007, you wrote:
There are users that, by one means or another, have specific privileges to specific objects that already exist inside specific databases. If a non-SYSDBA user is the owner of a database, then that user has certain capabilities that other non-SYSDBA users do not have, e.g., to backup and recreate the databases. However, even the owner does not have any privileges to objects within that databases unless it owns the object, or has been granted privileges to it.
In another message you wrote:
It's very unclear what's the purpose of all this. Are you deploying detached copies of your database to outsiders? If so, would deploying a read-only version of the *database* solve your problem?
./heLen
>So, by the moment, the best thing I can do is what AlexandreNo.
>suggested but I still have the following problems:
>
>1. The user will be allowed to create a table. Is there a way to
>avoid this?
>2. eMeL said that executing a SELECT with a SP, the read only userNo. The problem is that, for the user to be able to SELECT from a selectable SP, you would have to grant him EXECUTE privileges on the procedure. This is "safe" if the SP is output-only and "not safe" if your SP performs any operations that modify data.
>can modify the database. Is this true even if I don't grant EXECUTE
>to this user?
>Any other suggestion of creating a read only user another way?There is no such animal as a "read-only user". If you allow a user to get past the server's authentication gateway, that user has access to all databases under that server's control. However, unless the user is the SYSDBA, it has no privileges in any database.
There are users that, by one means or another, have specific privileges to specific objects that already exist inside specific databases. If a non-SYSDBA user is the owner of a database, then that user has certain capabilities that other non-SYSDBA users do not have, e.g., to backup and recreate the databases. However, even the owner does not have any privileges to objects within that databases unless it owns the object, or has been granted privileges to it.
In another message you wrote:
> Alan also suggested to use a read only transaction but this user willNo. You could modify IB_SQL yourself and compile a custom build of it, I suppose...but you couldn't stop anyone from just downloading the regular version and replacing the read-only build.
> connect using IB_SQL or something similar. He will not connect using my
> application. So how can I use a readonly transaction in this case? Is there
> a way to "force" a user to use always a read only transaction?
It's very unclear what's the purpose of all this. Are you deploying detached copies of your database to outsiders? If so, would deploying a read-only version of the *database* solve your problem?
./heLen