|
|
|
Возможно ли такое ?
|
|||
|---|---|---|---|
|
#18+
Нужно с помощью ХП прочитать метку диска на котором запущен сервер. Это возможно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:48 |
|
||
|
Возможно ли такое ?
|
|||
|---|---|---|---|
|
#18+
PaulJBНужно с помощью ХП прочитать метку диска на котором запущен сервер. Это возможно ? Adaptive Server Anywhere SQL User's Guide 17. Using Procedures, Triggers, and Batches Calling external libraries from procedures ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 15:51 |
|
||
|
Возможно ли такое ?
|
|||
|---|---|---|---|
|
#18+
Написать расширенную ХП на Java или C. Можно конечно поиграться с COMMAND.COM, xp_cmdshell и xp_readfile, но IMHO лучше метку диска не в БД считывать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:00 |
|
||
|
Возможно ли такое ?
|
|||
|---|---|---|---|
|
#18+
В WinAPI есть ф-ция GetVolumeInformationA. С помощью ее я из ПБ читаю метку без проблем. В ПБ обьявляю: Function boolean GetVolumeInformationA (string lpRootPathName, ref string lpVolumeNameBuffer, ulong nVolumeNameSize, ref ulong lpVolumeSerialNumber, ref ulong lpMaximumComponentLength, ref ulong lpFileSystemFlags, ref string lpFileSystemNameBuffer, ulong nFileSystemNameSize) Library "KERNEL32.DLL" //..................... скрипт вызова для ПБ ....................... string ls_RootPath, ls_VolumeName, ls_FileSystemNameBuffer ulong ll_VolumeSerialNumber, ll_MaximumComponentLength, ll_FileSystemFlags ls_RootPath = cdisk+"\" ls_VolumeName = Space (256) ls_FileSystemNameBuffer = Space (12) GetVolumeInformationA (ls_RootPath, ls_VolumeName, Len (ls_VolumeName), ll_VolumeSerialNumber, ll_MaximumComponentLength, ll_FileSystemFlags, ls_FileSystemNameBuffer, Len (ls_FileSystemNameBuffer)) return ( string(ll_VolumeSerialNumber) ) //............................................................................................ Перенес на ASA. Создал процедуру-обьявление: CREATE PROCEDURE DBA.getvolinfo(in lpRootPathName char(255),inout lpVolumeNameBuffer char(255),in nVolumeNameSize integer,inout lpVolumeSerialNumber integer,inout lpMaximumComponentLength integer,inout lpFileSystemFlags integer,inout lpFileSystemNameBuffer char(255),in nFileSystemNameSize integer) external name 'GetVolumeInformationA@KERNEL32.DLL' Создал ф-цию: ALTER FUNCTION DBA ."GetDiskMark" ( in ls_RootPath char(256) ) RETURNS varchar (256) BEGIN DECLARE ls_VolumeName char (256); DECLARE ls_FileSystemNameBuffer char (12); DECLARE ll_VolumeSerialNumber int ; DECLARE ll_MaximumComponentLength int; DECLARE ll_FileSystemFlags int; // SET ls_VolumeName = Space (256) ; SET ls_FileSystemNameBuffer = Space (12) ; SET ll_VolumeSerialNumber = 0 ; SET ll_MaximumComponentLength = 0; SET ll_FileSystemFlags = 0; CALL dba.getvolinfo( ls_RootPath, ls_VolumeName, 256, ll_VolumeSerialNumber, ll_MaximumComponentLength, ll_FileSystemFlags, ls_FileSystemNameBuffer, 12 ) ; RETURN string(ll_VolumeSerialNumber); END // ............................................................... При вызове ее из ISQL: CALL "DBA"."GetDiskMark"( 'c:\' ) пишет: ASA error -735: Invalid parameter. Что я делаю не так ? [ ASA 8.0.2.4454 ] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 18:53 |
|
||
|
Возможно ли такое ?
|
|||
|---|---|---|---|
|
#18+
Я бы очень настоятельно не рекомендовал пытаться WINAPI подцепить к БД, если не хотите получить падение сервера или его нестабильную работу. Получайте метку в PB или где еще, просто передавая ее в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 19:00 |
|
||
|
Возможно ли такое ?
|
|||
|---|---|---|---|
|
#18+
2ASCRUS Спасибо за совет, но к сож. по другому не получится. Хочу хоть как-то защитить базу(ы) от копирования на др. компьютеры или диски. Базы в разных городах и полностью во власти юзеров, но пароль на нее они не знают (надеюсь). Вот и хочется, что бы она САМА при старте определяла где находится и в случ. чего отбивала соединение или чего еще ... . Может есть др. методы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 12:18 |
|
||
|
Возможно ли такое ?
|
|||
|---|---|---|---|
|
#18+
PaulJB 2ASCRUS Спасибо за совет, но к сож. по другому не получится. Хочу хоть как-то защитить базу(ы) от копирования на др. компьютеры или диски. Базы в разных городах и полностью во власти юзеров, но пароль на нее они не знают (надеюсь). Вот и хочется, что бы она САМА при старте определяла где находится и в случ. чего отбивала соединение или чего еще ... . Может есть др. методы ? Если они не знают овнерский пароль, то уже изменить структуру и администрировать не могут. Если хочется что то по сложнее, то можно заморочиться с включением шифрования БД и вшитием ключа в клиентское приложение, которое уже само будет определять, стоит ли к БД подключаться или нет. Можно еще кучу всего придумать конечно - но кто умеет, тот всегда ломанет и утащит, дырки и обходные маневры всегда найдутся. А кто не умеет, так от него и защищаться бестолку - он даже ASA сам синсталить и настроить не сможет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 13:58 |
|
||
|
Возможно ли такое ?
|
|||
|---|---|---|---|
|
#18+
Кстати в пример хочу привести защиту 1С на ключах - в итоге официальные юзеры его сразу же ломают и ставят виртуальный девайс, чтобы 1С не глючила и нормально работала :) А те кто не могут, страдают в отличие от пиратов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 13:59 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=32863515&tid=2013971]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 421ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...