powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Меню в access XP
44 сообщений из 44, показаны все 2 страниц
Меню в access XP
    #32277466
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в Access XP спрятать стандартное меню "отобразить окно базы данных"?
...
Рейтинг: 0 / 0
Меню в access XP
    #32277837
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открываешь любую форму
правая кнопка мыши на тулбаре - появляется режим настройки меню
правая кнопка на нужной иконке, удалить
...
Рейтинг: 0 / 0
Меню в access XP
    #32277972
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это удалить иконку тулбара, а не стандартный пунк меню насколько я понимаю. Кроме того момент в том что надо прятать меню в зависимости от имени пользователя, то есть делать это программно.
...
Рейтинг: 0 / 0
Меню в access XP
    #32278023
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно поставленный вопрос - содержит половину ответа.

1 >Кроме того момент в том что надо прятать меню в зависимости от имени пользователя, то есть делать это программно.

это нужно было понять телепатически?

>Это удалить иконку тулбара, а не стандартный пунк меню

да, действительно. а где находится стандартный пункт меню отобразить окно базы данных?
...
Рейтинг: 0 / 0
Меню в access XP
    #32278277
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Параметры запуска". А дальше надо думать. Но думать лень.
...
Рейтинг: 0 / 0
Меню в access XP
    #32278465
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> "Параметры запуска". А дальше надо думать. Но думать лень.

причем здесь

> стандартный пункт меню ?

если речь идет о параметре базы данных отображать окно базы при запуске или нет то :

Код: plaintext
1.
2.
3.
4.
If .... Then
CurrentProject.Properties( "StartUpShowDBWindow" ).value =  0 
Else
CurrentProject.Properties( "StartUpShowDBWindow" ).value =  1 
End If
...
Рейтинг: 0 / 0
Меню в access XP
    #32278649
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я к сожалению не могу скриншот вставить сюда но если быть точным в английской версии это звучит так:

Window->Unhide...-> (здесь имя базы)

Так вот этого пункта в меню Window для пользователя User1 (к примеру) быть не должно, а если зайдёт пользователь User2 то этот пункт меню должно быть видно. Аналогично я думаю сделать с File->Open...
...
Рейтинг: 0 / 0
Меню в access XP
    #32278955
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А система разграничения прав доступа как организована?
Другими словами. как узнаешь имя пользователя?
...
Рейтинг: 0 / 0
Меню в access XP
    #32279503
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так:

Dim Usr
Usr = CurrentUser

Разграничено стандартно с помощью файла рабочей группы.
...
Рейтинг: 0 / 0
Меню в access XP
    #32279521
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не проще ли будет для всех пользователей скрыть стандартное меню и создать свое собственное, в котором есть пункт со своей функцией, которая в зависимости от прав выполняет необходимые действия.
...
Рейтинг: 0 / 0
Меню в access XP
    #32279697
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще, но пользователи используют всякие другие пункты меню и они им нужны, а то прирежут :) а пару других очень хочется прикрыть. И я даже видел одну программу где всё это прикрыто.
...
Рейтинг: 0 / 0
Меню в access XP
    #32279727
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и сделай свое меню, полностью повторяющее стандартное, за исключением не нужных пунктов.
...
Рейтинг: 0 / 0
Меню в access XP
    #32279760
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
удалить в стандартном меню...
правая кнопка мыши на меню - настройка- окно- отбразить - удалить ?
...
Рейтинг: 0 / 0
Меню в access XP
    #32279768
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
записано макрорекордером эксела:

Код: plaintext
    Application.CommandBars( "Window" ).Controls( 3 ).Delete


только надо бы заменить
Controls(3) на Controls("Имя_пункта")
...
Рейтинг: 0 / 0
Меню в access XP
    #32280592
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TO: АлексейК
Большое спасибо я практически так сделал только с помощью свойства visible.

Появилась ещё одна проблема любой пользователь может вернуть этот пункт меню описаным вами способом без всяких проблем и без всяких прав. Как с этим бороться?
...
Рейтинг: 0 / 0
Меню в access XP
    #32280665
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно защищают объекты базы данных от доступа а не окно базы данных.

если человек в состоянии программно отобразить или скрыть пунк меню то ему ничего не будет стоить из другого приложения открыть твой проект и просмотреть коллекции объектов tabledefs, ..

скрытие и отбражение меню может быть использовано только для удобства а для защиты не годится
...
Рейтинг: 0 / 0
Меню в access XP
    #32281071
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TO: АлексейК
Не всегда это эфективно "защищать только объекты базы данных".
Допустим у нас есть таблица и по некоторой логике пользователь должнен иметь возможность добавлять менять или удалять записи, но только те которые создал. То есть если пользователь user1 создал запись, он имеет право и удалить и изменить её, если же запись сделал другой юзер, то запретить ему это сделать. Мы естественно реализуем это с помощью формы.
Её конечно можно защитить так же как и таблицу, но этого мало если пользователь видит окно базы данных он заходит напрямую в таблицу и меняет всё что хочет. И поскольку в access нет тригеров выловить такие изменения нельзя. Я привёл пример с редактированием данных, но могут быть самые разные логики которые в других с-мах реализуют с помощью тригеров.

В моём же случае надо ещё найти как убрать контекстное меню "Cutsomize..."
из контекстного меню главного меню access и всё должно быть в полне безопасно. :P
...
Рейтинг: 0 / 0
Меню в access XP
    #32281755
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вопрос в том, чтобы не дать именно определенному классу пользователей войти в окно объектов бд, не запрещая, по возможности, доступ ко всем меню, в т.ч. контекстным, то где то были решения, попросту проверяющие текущий активный объект (по таймеру), и свертывающие аксес при попытке активизировать окно объектов БД. По моему у Шермана.

А то что имеющий права на таблы юзер подключится к БД извне вас не пугает?

ЗЫ: вот, нашел
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Public Function rpProtect() As Boolean
Static S As String, n As Long, TypeWindow As Long

On Error Resume Next
Err.Clear

n = Screen.Application.CurrentObjectType
If Err >  0  Then Exit Function 'на всякий случай
S = Screen.Application.CurrentObjectName

'тип не определен или диалоговая форма
If n = - 1  Then Exit Function

'Тип определен
TypeWindow = n
n = SysCmd(acSysCmdGetObjectState, TypeWindow, S)
If n = 0 Then GoTo TruEnd 'объект не открыт - окно базы

Select Case TypeWindow
Case acTable, acQuery, acMacro, acModule
GoTo TruEnd 'доступ всегда запрещен
Case acForm
S = Screen.ActiveForm.Name
If Err > 0 Then GoTo TruEnd 'форма в окне базы данных
If Forms(S).CurrentView =  0  Then GoTo TruEnd 'форма в конструкторе
Case acReport
S = Screen.ActiveReport.Name
If Err > 0 Then GoTo TruEnd 'отчет в окне базы данных
n = Reports(S).HasData
If Err >  0  Then GoTo TruEnd 'отчет в конструкторе
End Select
Exit Function

TruEnd:
rpProtect = True
End Function

А в форме (открываемой по умолчанию) что-то типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Option Compare Database
Option Explicit

Private Sub Form_GotFocus()
    If (Me.Visible = True) Then
        DoCmd.Quit acQuitSaveNone
    End If
End Sub

Private Sub Form_Open(Cancel As Integer)
    
    Me.Visible = False
    DoCmd.OpenForm  "Некая заставка" , acNormal

End Sub

Private Sub Form_Timer()
    If rpProtect() Then
        DoCmd.Quit acQuitSaveNone
    End If
End Sub
...
Рейтинг: 0 / 0
Меню в access XP
    #32282303
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо попробую. По поводу извне не очень меня беспокоит - я планирую чтобы пользователи работали через терминал (Citrix). И они будут иметь возможность запускать только эту базу.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282319
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Её конечно можно защитить так же как и таблицу, но этого мало если пользователь видит окно базы данных он заходит напрямую в таблицу и меняет всё что хочет. И поскольку в access нет тригеров выловить такие изменения нельзя.

Что за бред?
Запретить доступ к таблицам, дать доступ к запросам (которые уже и отсекут нужные записи). Это одно из возможных решений. И, уж извиняйте, но это основы аксесовской защиты (насколько она вообще возможна). Может, следует основы изучить прежде чем Record Level Permissions делать?

При чем тут отсутствие триггеров и окно базы данных? Как они вообще между собой могут быть связаны?

Что это за система защиты, основанная на предположении, что пользователь не догадается (или не сможет) запустить msaccess.exe и из любой (новой) базы прилинковать таблицы?
...
Рейтинг: 0 / 0
Меню в access XP
    #32282339
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему, есть две неабсурдные системы защиты
1) Для лохов(кроме ЛП), набором менюшек. Про что менюшки нет, того нельзя
2) Не для лохов. Использование access исключено.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282351
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно так.
Причем строя защиту от лохов можно и не пужаться того, что где-то в меню случайно что-то вылезет. Все равно не поймут что с этим делать.
А не от лохов (если уж судьба такая, на аксесе строить) - опять таки менюшками можно озабачиваться в самую последнюю очередь.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282510
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП. триггера, как ясно из контекста, связаны с возможностью сохранить логичесую целостность, а то и зафиксировать сам факт и юзера, проведшего изменения. Не важно, из окна базы вы их проделали, или из любого другого окна. Но другие окна, оказывается, под присмотром. (сарказм тут не уместен).

>>Запретить доступ к таблицам, дать доступ к запросам (которые уже и отсекут нужные записи).

- И тут юзер качнет (с известного ему сайта) раскрывалку юзеров и их UID-ов и, не долго думая, создаст mdw с требуемыми параметрами - и, как ни в чем не бывало, подцепится как owner в лучшем виде :0) ко всем табличкам и понатворит там "неотслеживаемых триггерами" безобразий :0)
...
Рейтинг: 0 / 0
Меню в access XP
    #32282515
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше плохая защита чем её отсутсвие давайте не рассуждать как её взломать это мы и так все знаем.

>>Запретить доступ к таблицам, дать доступ к запросам (которые уже и
отсекут нужные записи).

Это так опускает бедный комп работающий под access, что он зеленеть начинает я уже не говорю если талблицы прилинкованые.

Я же стаю перед фактом есть программа её надо прикрыть что бы не лазили вот я и решил это обсудить.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282527
Юрий Р.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Статья на эту тему
http://www.hiprog.com/access/article.asp?id=361
...
Рейтинг: 0 / 0
Меню в access XP
    #32282578
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага, вот и ссылочка. Именно это я и имел в виду.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282726
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Вот и решил обсудить
Защита на уровне менюшек делается примерно так
1)Заходишь в сервис-параметры запуска и убираешь там вредные галки
2)Защищаешься от открытия с шифтом(из какого-то модуля выдрал, не уверен что работает, но разобраться можно)
Private Sub SetBypassProperty()
ChangeProperty "AllowBypassKey", DB_BOOLEAN, False '!!!!!!!!!!!!!!!!!!!!!!!!!!!
End Sub

Private Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 2455

Set dbs = CurrentProject
On Error GoTo Change_Err
dbs.Properties(strPropName) = varPropValue
ChangeProperty = True

Change_Bye:
Exit Function

Change_Err:
If Err = conPropNotFoundError Then ' Property not found.
dbs.Properties.Add strPropName, varPropValue
Resume Next
Else
' Unknown error.
ChangeProperty = False
Resume Change_Bye
End If
End Function


3)Делаешь mde
4) Успокаиваешься:-)
...
Рейтинг: 0 / 0
Меню в access XP
    #32282798
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Shark
Ты не в теме.
Хоть обснимайся ты вредных галок и обзащищайся от шифта - через стандартные меню окно базы данных у тебя покажется.

2 assa
И тут юзер качнет (с известного ему сайта) раскрывалку юзеров и их UID-ов
От взлома mdw не защититься. Это я и имел в виду когда говорил про защиту аксеса "насколько она вообще возможна". Но защитить таблицы от пользователей, работающих под обычными логинами - никогда не повредит. Я бы делал это в первую очередь (а уж потом меню скрывал).

Да, кстати, а кто тебя заставляет давать пользователю mdw-шник с кошерным пользователем? Лежит этот mdw у разработчика, пользователи его никогда в руки не получают, и крякалками взломать не смогут. Что хоть немного да лечит ситуацию.

2 Creator
Это так опускает бедный комп работающий под access
Ничуть не опускает. У тебя формочка висит на таблице? Ну так повесь ее на сохраненный запрос "Select * From TableName With OwnerAccess Option". И получишь ты, что напрямую к таблицам обычный юзер не сможет обратится ни через связанные таблицы, ни через случайно всплывшее окно базы данных, а вот через приложение - сможет. Когда (если) понадобится - уже над этим наворачивай RLP.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282910
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2LP

>>Лежит этот mdw у разработчика, пользователи его никогда в руки не получают, и крякалками взломать не смогут

? в смысле по входу - кодом переподключать .SystemDB .DefaultUser и .DefaultPassword, а также закатать это фсе в mde ? Да так, чтобы owner (и пользователи) mde не имел доступа к таблицам (до переподключения)? Тогда, таблицы - заведомо в другой бд (права на объекты, если помню правильно, лежат в базе, разве что вхождениями в группы регулируются снаружи), а ее owner-а юзер найдет крякалкой, если прознает путь подключения... А можно ли запретить ему прознать путь "в лехкую", например подключившись как овнер mde и запросив поля MSysObjects ?

SELECT DISTINCTROW MSysObjects.Database, MSysObjects.Connect, MSysObjects.ForeignName, MSysObjects.Name
FROM MSysObjects
WHERE (((MSysObjects.Database) Is Not Null)) OR (((MSysObjects.Connect) Is Not Null));

Или вообще другое решение? чей-то не соображу
...
Рейтинг: 0 / 0
Меню в access XP
    #32282938
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Асса
Зачем кодом что-то перелопачивать?
Ниче не понял из твоего поста. С понималкой видно туго по утрам.
Пытаюсь разжевать более подробно

Закатать все в mde - однозначно (если противопоказаний нет)
Разумеется разделить данные и интерфейс. Даже не из соображений безопасности.
Доступ к таблицам закрыть для всех, кроме одного пользователя (владельца).
Владелец всех объектов в базе, в том числе и запросов - именно этот пользователь. Под ним запросы и исполняются, за счет этого доступ к данным и имеют.
Пользователи входят в базу (интерфейсную часть) под своими собственными логинами. Что не мешает работать запросам. Патамушта With OwnerAccess Option. Но напрямую с таблицами работать не выйдет, ни из этой базы (клиентской части) в случае случайно всплывшего окна, ни из любой другой.

Ты сказал (или я так понял), что юзер может взять файл рабочих групп (mdw), взломать его любой крякалкой, и заходить под кем угодно, в том числе под супер-пупер пользователем. И делать что угодно. Так не давать ему тот mdw-шник, в котором нужный пользователь есть (владелец объектов).
Не имея нужного mdw-шника человек может узнать максимум UID владельца объектов. Ну дык и что он с ним будет делать? В окне логина его вбивать?

Это все не панацея, но на аксесовском безрыбье...
...
Рейтинг: 0 / 0
Меню в access XP
    #32283053
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть прога Сергея Гаврилова (кажется), которая ИМЕННО по приложению возвращает овнера и его УИД. Посему, узнав его, злой юзер создает СВОЙ mdw с требуемым овнером и уидом уже СО СВОИМ паролем. В менеджере групп (правда, должен иметь права админа в в2000 на машину, на которой будет это делать) переподключает mdw и делает с таблицами что хочет.\r
\r
Либо (если прав админа на тачку нет) подключается к новому mdw программно (- Насчет .SystemDB я, похоже, соврал. когда-то, казалось, пробовал; - но сейчас перепроверил - не меняет. Или я что-то не так творю.)\r
- после входа в свой новый mdb (пишет в процедуре че нить\r
Set DBE = GetObject("", "DAO.PrivateDBEngine.36") \r
DBE.SystemDB = strSysFilePath \r
DBE.DefaultUser = strUserName \r
DBE.DefaultPassword = strPassword \r
Set db = DBE.OpenDatabase(...) )\r
, затем подключает (видимо кодом) требуемые таблицы - ибо для этого нужнО только совпадение логина и уида пользователя (имеющего права), но не путь к mdw, - и вот и ладушки. А что подключать - может выянить "на дому", забрав копию базки, если сможет :0). Там то он поимеет нужные права для подключки менеджером.\r
\r
К тому же (и главное) я не понял, как юзер не будет видеть SystemDB, если для работы ему нужны ВСЕ права (и на чтение и на запись) на эту дрянь?
...
Рейтинг: 0 / 0
Меню в access XP
    #32283175
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я опять ничего не понимаю.
У юзера есть логин, пароль, UID. Все это хранится в mdw.
У объекта базы данных есть владелец. Его UID хранится в базе (привязанный к объекту).
Если у пользователя отсутствует исходный mdw, в котором лежит вся информация о полноправном пользователе, то он может получить максимум UID (из базы).

Что он с этим UID-ом будет делать? Создаст пользователя с таким UID? Может это пробел в моем образовании, но я не знаю как это сделать.

Можно, наверное, ну да и хрен с ним. Если кто помнит ссылку на такую софтинку - киньте ей в меня. Поиграю на досуге. Нет так нет.

злой юзер создает СВОЙ mdw с требуемым овнером
Как это?

правда, должен иметь права админа в в2000 на машину, на которой будет это делать
На хера ему права админа? Чтоб аксес запустить с нужным mdw? См. параметры коммандной строки.

К тому же (и главное) я не понял, как юзер не будет видеть SystemDB, если для работы ему нужны ВСЕ права (и на чтение и на запись) на эту дрянь
Это о чем вообще?

Какой-то разговор слепого с глухим.
Удаляюсь.
...
Рейтинг: 0 / 0
Меню в access XP
    #32283283
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А.
По пунктам:

1. Создал новый mdw. (New.mdw)
2. Запустил Access с ним (New.mdw). (Ага, вот и ладушки - с параметром командной строки - не все, что можно, вспоминаешь в нужный момент). Естественно перший раз Вы - admin.
2. Создал в New.mdw юзера с логином owner-а требуемой БД и уидом ("кодом" диалога создания нового пользователя Аксес, если лохи не в курсе. Поскольку мдв (и мдб, в каком мы это будем делать) свежий, то ничто не мешает). Кстати сказать, это (ввод точно таких же юзеров с точно такими же кодами) рекомендуемый способ восстановления мдв при случайном или еще каком его крахе (без наличия резервных копий). (Правда при этом надо видимо заранее в сейф запечатать вводимые уиды, иначе ведь в нужный момент недокличешься, без прилад типа прилады СГ). // для нас достаточно ввести именно только овнера.//
3. Задаем стандартному админу (admin) в New.mdw пароль, входим теперь как новый юзер в аксесс (как правильно напомнил ЛП - с параметром стартовой строки New.mdw). И, (о радость) - открываем "взламываемый" файл с правами его ownera.

Что в пунктах не ясно?

___
В.
Убери права на чтение/запись у юзера на файл system.mdw и попробуй под ним (юзером) подключиться к Аксесу имеено с этим system.mdw. Неужто получается? У меня матерится, почем зря. Так вот, я и не понимаю, как >>не давать ему тот mdw-шник<<

Что тут не ясно?
...
Рейтинг: 0 / 0
Меню в access XP
    #32283296
=+=+=+=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2ЛП
>Если кто помнит ссылку на такую софтинку - киньте ей в меня. Поиграю на досуге. Нет так нет.

От Serge Gavrilov http://accesstools.narod.ru - Users' passwords viewer v2.0 (правда показывает только пароли), но возможно сам Serge Gavrilov, что-нибудь прояснит
...
Рейтинг: 0 / 0
Меню в access XP
    #32283298
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Ты не в теме
Обидно, блин :-(
5 лет ентим пользуюсь, и на тебе..

Если серьезно, то стандартные меню- это одна из вредных галок.
...
Рейтинг: 0 / 0
Меню в access XP
    #32283344
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
брал там же, только (по моему), MS Access' 95/97/2000 databases password tool v2.2 . В поле Database owner показывает USER .... PID ... (ага, кажется понял - прошу прощения за непонятки с уид - склероз в тяжолой форме - PID!=UID )
...
Рейтинг: 0 / 0
Меню в access XP
    #32283388
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sid, pid, uid, guid, huid
запутаешься с ними

при создании пользователя - воодится код. это совсем не то же самое, что SID (PID), хранящийся в базе.
Прога Сержа Гаврилова показывает именно SID (PID). Может (наверняка) есть возможность своему пользователю в своем mdw запихнуть этот SID (PID), но я такой возможности не знаю.

Разрабатываешь базу с неким mdw. В нем есть пользователь-владелец всех объектов. Перед распространением проги из mdw убиваешь этого пользователя. Если зайти в приложение под любым другим логином из этого коцанного mdw-шника - владелец у всех объектов "неизвестный". Но он есть, и все запросы от его имени преспокойно работают. Этот коцанный mdw-шник и отдаешь на откуп юзерам. Пусть ломают как хотят. Все равно не смогут оттуда вытащить пароль пользователя-владельца, патамушта этого пользователя там нет.
...
Рейтинг: 0 / 0
Меню в access XP
    #32283652
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, лох, ты тут не прав. Посмотри справку по МС Акс. "Личный код, он же PID". Я просто уже ДЕЛАЛ то, что предлагал выше - вводил возвращаемый PID в поле код при создании "нового" юзера (правда, использовал .mda). И подключался к "чужой" бд в качестве владельца. Правда делал я это с год назад. Исключительно в исследовательских целях. Т.к. пароль владельца в "старой" system.mda я и так знал "по обязанности".

Не уверен, что пользовался приладой СГ, но вроде бы больше нечем - надо перепроверить - делал я это дома. Все есть под рукой, но ломает напрягаться в тяпницу).

Файл Access хранит не только Login-ы, но и PID-ы юзеров. А так же все их права на объекты (или права групп, но тогда доступ осуществляется только через проверку вхождения в группы - т.е. через проверку системника).

Именно поэтому достаточно одинаково ввести юзеров (с кодами) в системники, чтобы подключатся к одной и той же бд используя то тот - то этот .mdw (если ты имешь права как юзер self, а не как член группы - а это всегда верно для owner-а). (Наверное, именно поэтому PID доступен программно только на запись, но не на чтение. Как Гаврилов это обходит - его ноу-хау). А отсутствие юзера в системной базе не означает, что его PID недоступен из БД. Он просто "спрятан", но не очень хорошо.
...
Рейтинг: 0 / 0
Меню в access XP
    #32283694
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты не боись того что я неправ. Патамушта я прав :)
Именно приблуда Сержа Гаврилова выдает именно PID (который на самом деле SID), который нифига не код (который PID при создании пользователя).
И если ты этот PID (который SID) вобьешь при создании юзера - нифига хорошего ты не получишь. Т.е. владельцем объектов ты не станешь, доступа к данным не получишь.
Проверил только что.
А если вбивать при создания пользователя PID (который код) - все ок. Только как из PID (который SID) получить код (который PID) - хз.

Файл Access хранит не только Login-ы, но и PID-ы юзеров
Не PID, а SID
А PID скорее всего и не хранится. Он используется для получения SID. Насколько сложно обратное преобразование сделать - да и хрен его знает.
...
Рейтинг: 0 / 0
Меню в access XP
    #32283726
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я патаму и написал, что "боюсь", ибо не помню, какую приладу юзал :). Помню, что похожа была на экзешник (склероз крепчает). А У сГ - .mdb а перепроверять - ленннььь, да такая, чтааа...

И даже вот поюзать приладу СГ и то лень. т.ч. поверю пока что на слово :0). Но не на долго.
...
Рейтинг: 0 / 0
Меню в access XP
    #32283751
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БЕБЕБЕ!
Надоело лениться проверил (создал .mda в администраторе групп Access97) Все тики-тики. Прошло, как я и писал. По Гавриловской проге.

Версия:
в mda вводится в качестве "личного кода" PID, А при вводе в mdw меняется? - отпала, в силу прочтения справки по "преобразованию" mda - .mdw (рекомендуется ввести всех заново руками - тоже мне "преобразование".)

Устал ленится второй раз. Создал .mdw (в администраторе групп Access97) Прошло тип. топ.

(К сведению: проверяю каждый раз
?dbengine.SystemDB
?dbengine.Workspaces(0).UserName
хотя это и так панятна - пароли-то при входе разные - как и устанавливал)

БЕ-БЕ-БЕ!
...
Рейтинг: 0 / 0
Меню в access XP
    #32283884
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из всего выше сказаного предлагаю написать прогу для форамального конвертирования запросов c Access на ANSI SQL. :)
...
Рейтинг: 0 / 0
Меню в access XP
    #32298099
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2LP

нашел причину расхождения мнений (PID/SID):
прога Гаврилова дает таки PID owner-а, но не прорубает кирилицы. (напоролся надысь, "синхронизируя" разные, разошедшиеся по жизни системники) Т.ч. если в PID-е была кирилица, то "увы". (хорошо, что использовал однозначное правило создания юзарей). А SID -это "закодированный" PID (см. инструкцию по вводу пользователей - там, где рекомендуется "записать PID в бумажку", т.к. "Акес хранит PID в зашифрованном виде"). т.ч. процедура "подьема PID из SID" обязана сущ-вать - там где-то зашито взаимно однозначное преобразование.
...
Рейтинг: 0 / 0
Меню в access XP
    #32298125
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 assa
Насчет кириллицы. Я ее не использую. Но прогой Сержа Гаврилова все равно не удалось из mdb-шника достать данные, необходимые для воссоздания удаленного из mdw файла пользователя (владельца mdb)
Или я тупой, или может мы про разные проги говорим.

прога Гаврилова дает таки PID owner-а
Хде, хде она его дает??? То что там видел - ни фига на мой родной PID (который код ) не похоже.

процедура "подьема PID из SID" обязана сущ-вать
ню-ню. Существовать-то она существует, да только сложность обратной процедуры (расшифровки) может на кучу порядков превосходить сложность прямой (шифрования).
Простейший пример - взять два очень больших простых числа и перемножить их. Просто? Конечно просто. А потом по произведению найди изначальные множители. Удачи тебе в этом нелегком труде.
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Меню в access XP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]