On 17-02-2021 01:05, Wavey Maple wrote:
> Thanks for the speedy reply Mark. I was asking because I didn't know if
> I was doing something incorrectly and this was behaving as expected.
>
> To follow up:
> 1. Copying Security3.fdb to the same folder as where MyApp.fdb sits
> resolves this issue.
> 2. I cannot get REVOKE all to work by configuring databases.conf - the
> error message is the same originally posted.
>
> So on the first point, I am wondering whether it IS a bug or not? From
> the Quick Start Guide, section '5.1.3. The security database', p.19
>
https://www.firebirdsql.org/file/documentation/pdf/en/firebirddocs/qsg3/firebird-3-quickstartguide.pdf
> <
https://www.firebirdsql.org/file/documentation/pdf/en/firebirddocs/qsg3/firebird-3-quickstartguide.pdf>
> it states "/Except in the case of so-called embedded connections (more
> about those later in this guide), connecting to a database always
> involves the security database.../" which would infer Security3.fdb does
> *not* need to sit beside MyApp.fdb. So a follow-on question is;
> a) Is Security3.fdb supposed to be deployed in an embedded configuration?
I think it's a bug because Firebird Embedded doesn't need to have a
security database, but it looks like REVOKE ALL ON ALL performs actions
that require a security database. As I mentioned in my previous reply,
please report it in the tracker.
If connected with an embedded connection, at best this should produce a
warning, or just work.
> On point #2, I am not sure if the syntax I am using is correct. In
> databases.conf, I have set up (NB: running in Windows 10):
> MyAppAlias = MyApp.fdb
> {
> SecurityDatabase = MyAppAlias
> }
> however I still get the original error where it seems databases.conf is
> not being used. So a couple more questions:
> b) Is databases.conf even used in embedded?
> c) If so, is the syntax above correct?
Yes, databases.conf is used for Firebird Embedded, the problem is that
you specified a relative path, and relative paths don't work in
databases.conf. You need to specify an absolute path, or use one of the
variables specified in
https://www.firebirdsql.org/file/documentation/release_notes/html/en/3_0/rlsnotes30.html#rnfb30-configparams-macrosubs
For example, use $(root)\MyApp.fdb (which means the database must be in
the directory containing Firebird Embedded), or specify an absolute path.
And of course, you need to specify the alias and not the database name
in your connection string.
Mark
--
Mark Rotteveel