Для установки пароля на чтение данных из таблицы используется функция setrdpswd. Пока не вызвана эта функция, все таблицы открываются без пароля. После вызова функции setrdpswd все открытия таблиц (постоянных и временных) будут производиться с указанным паролем на чтение. Установленный пароль будут использовать SQL операторы:
· open table;
· create table;
· drop table;
· pack table;
· create index;
· drop index и т.д.,
а также SQL операторы:
· select;
· insert;
· delete;
· update, если они открывают таблицы.
Формат вызова:
setrdpswd([sPassword]);
Аргументы:
Аргумент
Тип
Значение
sPassword
character
Пароль для чтения. Если указать пустую строку или опустить аргумент, то это означает открытие таблиц без пароля на чтение.
Аналогично, для установки пароля на запись данных из таблицы используется функция setrdpswd.
Формат вызова:
setwrpswd([sPassword]);
Аргументы:
Аргумент
Тип
Значение
sPassword
character
Пароль для записи. Если указать пустую строку или опустить аргумент, то это означает открытие таблиц без пароля на запись.
Шифрование данных в таблицах
Для включения механизма шифрования данных в таблице используется специальная функция setcrypto. Данная функция устанавливает криптоключ для записи в таблицы по умолчанию. Пока не вызвана эта функция, все таблицы создаются без криптоключа. После вызова функции setcrypto все операции создания таблиц (постоянных и временных) будут производиться с указанным криптоключом. Установленный пароль будет использовать SQL оператор create table. Для последующего чтения, вставки и изменения данных из таблицы с активированной функцией шифрования повторный вызов функции setcrypto не требуется.
Формат вызова:
setcrypto([sCrypto]);
Аргументы:
Аргумент
Тип
Значение
sCrypto
character
Криптоключ. Если указать пустую строку или опустить аргумент, то это означает создание таблиц без криптоключа.
Пример:
if(table_exists('T1') > 0) drop table T1;
create table T1 ( ID dword surrogate, DATA char(50) );
insert into T1(DATA) values('string11'); insert into T1(DATA) values('string12');
setcrypto('passkey');
if(table_exists('T2') > 0) drop table T2;
create table T2 ( ID dword surrogate, DATA char(50) );
insert into T2(DATA) values('string21'); insert into T2(DATA) values('string22');
В данном примере таблица Т1 создается без криптоключа, поэтому данные записываются в файлы таблицы Т1 в открытом виде. Таблица Т2 создается после вызова функции setcrypto, поэтому данные таблицы Т2 хранятся в файлах таблицы в зашифрованном виде. В дальненйшем, для работы с данными таблицы Т2 повторный вызов функции setcrypto не требуется, т.е. криптоключ устанавливается один раз при создании таблицы.