dbTalk Databases Forums  

btrieve with IDS (Version9.x)

comp.databases.btrieve comp.databases.btrieve


Discuss btrieve with IDS (Version9.x) in the comp.databases.btrieve forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
nmm
 
Posts: n/a

Default btrieve with IDS (Version9.x) - 08-25-2008 , 08:36 AM






Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #2  
Old   
BtrieveBill
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 08-25-2008 , 04:13 PM






The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Quote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #3  
Old   
BtrieveBill
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 08-25-2008 , 04:13 PM



The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Quote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #4  
Old   
BtrieveBill
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 08-25-2008 , 04:13 PM



The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Quote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #5  
Old   
nmm
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 09-04-2008 , 09:08 AM



Thank you for these interesting remarks!

What you mean with the "advanced Btrieve security" is what they call
"Database Security Model". I will try
"Setting Up Btrieve Security"
(<http://www.pervasive.com/library/docs/psql/870/whatsnew/whatsnew-5-1.html#wp74303>).

Regards
Mircea


BtrieveBill schrieb:
Quote:
The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #6  
Old   
nmm
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 09-04-2008 , 09:08 AM



Thank you for these interesting remarks!

What you mean with the "advanced Btrieve security" is what they call
"Database Security Model". I will try
"Setting Up Btrieve Security"
(<http://www.pervasive.com/library/docs/psql/870/whatsnew/whatsnew-5-1.html#wp74303>).

Regards
Mircea


BtrieveBill schrieb:
Quote:
The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #7  
Old   
nmm
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 09-04-2008 , 09:08 AM



Thank you for these interesting remarks!

What you mean with the "advanced Btrieve security" is what they call
"Database Security Model". I will try
"Setting Up Btrieve Security"
(<http://www.pervasive.com/library/docs/psql/870/whatsnew/whatsnew-5-1.html#wp74303>).

Regards
Mircea


BtrieveBill schrieb:
Quote:
The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #8  
Old   
BtrieveBill
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 09-05-2008 , 12:58 PM



That's the one.
BB

nmm wrote:
Quote:
Thank you for these interesting remarks!

What you mean with the "advanced Btrieve security" is what they call
"Database Security Model". I will try
"Setting Up Btrieve Security"
(<http://www.pervasive.com/library/docs/psql/870/whatsnew/whatsnew-5-1.html#wp74303>).

Regards
Mircea


BtrieveBill schrieb:
The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #9  
Old   
BtrieveBill
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 09-05-2008 , 12:58 PM



That's the one.
BB

nmm wrote:
Quote:
Thank you for these interesting remarks!

What you mean with the "advanced Btrieve security" is what they call
"Database Security Model". I will try
"Setting Up Btrieve Security"
(<http://www.pervasive.com/library/docs/psql/870/whatsnew/whatsnew-5-1.html#wp74303>).

Regards
Mircea


BtrieveBill schrieb:
The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
  #10  
Old   
BtrieveBill
 
Posts: n/a

Default Re: btrieve with IDS (Version9.x) - 09-05-2008 , 12:58 PM



That's the one.
BB

nmm wrote:
Quote:
Thank you for these interesting remarks!

What you mean with the "advanced Btrieve security" is what they call
"Database Security Model". I will try
"Setting Up Btrieve Security"
(<http://www.pervasive.com/library/docs/psql/870/whatsnew/whatsnew-5-1.html#wp74303>).

Regards
Mircea


BtrieveBill schrieb:
The "database" parameter allows you to specify which database you are
accessing. Normally used by SQL only, the use of this paramerter in IDS
is also important.

You can test it with this IDS line:
Z:\DEMO servername DEMODATA

Then, open the file: "Z:\DEMO\PERSON.MKD" and you'll find the file in
the DEMODATA database (C:\PVSW\DEMODATA) gets opened correctly.

For your own application, you should specify the database as well, so
that the base location can be found. If the files are being opened via
the Z:\PROJECT\DATA directory, and if your database (i.e. DDF files) is
in Z:\PROJECT\DATA, then the line will look like this:

Z:\PROJECT\DATA\ servername databasename

Try to avoid using the IP address, which connects more slowly.


BTW, this by itself may not work around the rights issue. The
Client/Server database engine enforces the OS rights of the user. As
such, if the user has WRITE rights, then he or she will be able to write
to the database. This is the way Btrieve security was designed long ago.

Using IDS like this will enable you to "Hide" the share, but users will
still have the needed rights. If you want to remove OS-level rights
entirely, then you'll need to set up the "advanced Btrieve security" for
this database. This is a LOT more complicated, and I strongly encourage
you to set up a test environment to play with this, first, since you can
actually make the system unusable if you're not careful with this one.
Goldstar Software Inc.
Pervasive-based Products, Training & Services
Bill Bach
BillBach (AT) goldstarsoftware (DOT) com
http://www.goldstarsoftware.com
*** Next Pervasive Service & Support Class - Nov 2008 ***


nmm wrote:
Hi,

i have a native btrieve-application, which specifies the complete
paths to the (btrieve) data-base files explicit. Therefore the
directory containing the data-files has to be mapped to a local drive
letter on the clients via a "release".
Unfortunately btrieve needs write - rights on that mapped drive,
allthough the client itself never changes the files: the requests to
update or create are send to the server-engine on the server! And the
engine changes the files!
So one can imaagine, that it shoubd be possible to omit write-rights
to the datafiles on windows-system-level, but the btrieve-server,
which runs on the server with more rights, should be able to change
the files.

Unfortunatley this semms impossible.

So I wonder, if one can avoid mapping using IDS:

The documentation of IDS is staggering poor! So I made some experiments:

The datafiles are at d:\project\data ("d:" is a local drive on the
server). The server has IP-Adress "x.y.z.u".

So I switched "Use IDS" on the Server-engine to "ON" and put to the
idshost-file

#############
# j: www.pe.com # Drive mapping
z: x.y.z.u
#############

The drive z: is not mapped on the client!

If I open a file z:\\project\data\test.dat within the application, I
get the error 172: Database name not found.

OK, but using btrieve I dont have any Database name!

I turn "trace operation" to ON and select OPEN(0). In the LOG-File I get

File: "btrv://x.y.z.u/www.pe.com?dbfile=project%5Cdata%5Ctest.dat"

This is strange, because, the line in idshost where the www.pe.com is
mentioned, is commented out (line starts with #)!

If I change the line say to

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u
#############

I get in the log:

File:
"btrv://x.y.z.u/www.peXYZ.com?dbfile=project%5Cdata%5Ctest.dat"

This is also so, if I put


#############
# j: www.peXYZ.com # Drive mapping
###
###
###
z: x.y.z.u
#############


to idshost.
If idshost contains only the line

z: x.y.z.u

I get:

File: "btrv://x.y.z.u/%c2%92%7C?dbfile=project%5Cdata%5Ctest.dat"

If I use

#############
# j: www.peXYZ.com # Drive mapping
z: x.y.z.u abcdef
#############

then I get (as expected

File: "btrv://x.y.z.u/abcdef?dbfile=project%5Cdata%5Ctest.dat"


If I do not use idshost, the logfile looks like (d$ is mapped on the
client as "F:"):

File: "\\mycomputer\D$\project\data\test.dat"

without "btrv:" and so on (and nothing about the local
"drive" "F:"!)


How can I avoid the "dbfile=" construction in the ids-replacement?

I would expect somthing like

z: x.y.z.u/D$

in the idshost-file, but doing so, I get a status-code 3103 (the
server is running!).


I suppose, that I do something wrong here. Any idea, how to make it
correct, would be welcome!
Thanks in advance!

Mircea




Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.