powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
16 сообщений из 16, страница 1 из 1
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759674
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VB все просто, при открытии формы вызывалось окно для ввода логина и пароля и по нажатию кнопки делалась попытка создать конекшн с этим логином.
В ADP же не понятно как это сделать, при создании проекта он запросил меня под кем зайти и с тех пор всегда заходит под этой учеткой виндов.
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759679
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отключить доверенное соединение из свойств проекта для начала
потом сделать свою форму для подключения или написать код который будет подключать по заложенным настройкам
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759756
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь выручит с кодом? Примерчик хотя бы
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759780
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 у меня на сайте есть пример формы
2 хаммер сегодня давал пример подключалки по конфигурационному файлу
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759871
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей, посмотрел твой сайт, заинтересовала такая штука как сравнения фраз с целью исключения дубликатов .
У меня есть таблица с клиентами с полями типак имя, инициалы, почт индекс, область, город, улица, дом. В этой таблице расплодилась туча двойников, например у одного г.Москва, у второго г. Москва, а у третьего просто Москва. Или допустим квартира или кв. Это случайно не для этого твоя искалка дубликатов написана?
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759874
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А насчект проги для коннекта, какая именно?
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759926
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прямая ссылка на файл:
http://www21.brinkster.com/kozin/getfile.asp?name=dbconnectionexample.rar

процедура для поиска имеющихся данных на стадии добавления данных

выдаст весь список адресов в ответ на искомую строку в порядке убывания похожести

ищем Москва Тихвинский пер. д7

выдаст типа
1 Москва Тихвинский пер. д7
2 г. Москва Тихвинский пер. д7
3 Москва Тихвинская ул. д7
итд.
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759940
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помог АлексейК, но что-то переиначил под себя
Есть ввода пароля, там имя, пароль, 2 кнопки, "ОК" и "отмена".
На загрузку вешаем
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Form_Load()
On Error Resume Next
Dim sConnectionString

sConnectionString = "PROVIDER=SQLOLEDB.1;PASSWORD=;" & _
         "PERSIST SECURITY INFO=FALSE;USER ID=mybase_user;" & _
         "INITIAL CATALOG=mybase;DATA SOURCE=server14"
Application.CurrentProject.OpenConnection sConnectionString

If Err.Number =  30002  Or Err.Number = - 2147217843  Or Err.Number = - 2147467259  Then
MsgBox "Неправильное имя пользователя или пароль" & vbCrLf & Err.Description
Exit Sub
End If
Call SetRegistry(Me.PassForm_nam)
Call SetRegistry(Me.F_pass)
Call ctlstatus
'If CurrentProject.IsConnected Then DoCmd.Close acForm, Me.name
End Sub
Mybase_user имеет права только на запуск ХП, которая вытягивает пароль и имя из соотв. таблы.
Далее на кнопку "ок"
Вешаем код


Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
Private Sub Кнопка8_Click()
On Error GoTo exit_sub
Dim a
If IsNull(Me![PassForm_nam]) = True Then
    MsgBox ("Введите имя!!!")
    Me.PassForm_nam.SetFocus
Else
    Dim cn As ADODB.Connection
    Dim sqlstr As String
    sqlstr = "driver={SQL Server};server=server14;uid=mybase_user;pwd=;database=mybase"

    Set cn = New ADODB.Connection
    cn.ConnectionString = sqlstr
    cn.Open
    Prava_yes = cn.Execute("dbo.MySP N'" & Forms!passform.PassForm_nam & "'").Fields( 0 )
    PS = cn.Execute("dbo.look_pass N'" & Forms!passform.PassForm_nam & "'").Fields( 0 )
    If PS = F_pass Then
        If Prava_yes Then
            Me.Perm = "*"
        Else
            Open_ADV_REP = Trim(Forms!passform!PassForm_nam)
        End If
     Else
        MsgBox ("Пароль неверный!!!")
        Me.F_pass = Null
        Me.F_pass.SetFocus
        a =  1 
    End If
End If
cn.Close
If a =  1  Then GoTo exit_sub
Application.CurrentProject.CloseConnection

Dim sConnectionString As String
sConnectionString = "PROVIDER=SQLOLEDB.1;PASSWORD=" & PS & ";" & _
         "PERSIST SECURITY INFO=TRUE;USER ID=" & Me.PassForm_nam & ";" & _
         "INITIAL CATALOG=mybase;DATA SOURCE=server14"
Application.CurrentProject.OpenConnection sConnectionString

Call SetRegistry(Me.servername)
Call SetRegistry(Me.databasename)
Call SetRegistry(Me.PassForm_nam)
Call SetRegistry(Me.F_pass)

Dim status
If CurrentProject.IsConnected Then
status = "connected"
Else
status = ""
End If

Call SaveSetting(Left(CurrentProject.Name, Len(CurrentProject.Name) -  4 ), "baseconnect", "status", status)
Me.Visible = False

exit_sub:

If Err.Number =  30002  Or Err.Number = - 2147217843  Or Err.Number = - 2147467259  Then
MsgBox "Неправильное имя пользователя или пароль" & vbCrLf & Err.Description
End If
Exit Sub
End Sub

А вот и остальные модули взяты под копирку у Алексея (а зачем придумывать велосипед, если его кто-то уже изобрёл)

Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
Option Compare Database
Option Explicit
Public FindStrClient As String 'Строка для поиска клиента при вызове формы поиска
Public IdClient As Integer
Public SelectedProject As String
Public Partners_fplan_detail As Integer

Declare Function IsZoomed Lib "user32" (ByVal hWnd As Long) As Long

Sub FormMaximize()
On Error Resume Next
    If Not IsZoomed(Screen.ActiveForm.hWnd) Then
        Echo False
        DoCmd.Maximize
        Echo True
    End If
End Sub

Public Sub Reload_form(FRM_NAME As String)
If CurrentProject.AllForms(FRM_NAME).IsLoaded Then DoCmd.Close acForm, FRM_NAME
DoCmd.OpenForm FRM_NAME
End Sub


Public Sub Reload_Report(REP_NAME As String, Optional View As Access.AcView = acViewPreview)
If CurrentProject.AllReports(REP_NAME).IsLoaded Then DoCmd.Close acReport, REP_NAME
DoCmd.OpenReport REP_NAME, View
End Sub


Public Sub SetRegistry(Ctl As Control)
Call SaveSetting(Left(CurrentProject.Name, Len(CurrentProject.Name) -  4 ), Ctl.Parent.Name, Ctl.Name, Nz(Ctl.Value, ""))
End Sub

Public Sub GetRegistry(Ctl As Control, Optional DefaultValue)
Dim v1
v1 = GetSetting(Left(CurrentProject.Name, Len(CurrentProject.Name) -  4 ), Ctl.Parent.Name, Ctl.Name)
If v1 = "" Then Ctl.Value = DefaultValue Else Ctl.Value = v1
End Sub

Public Function CallHelp()
On Error Resume Next
Dim oShell
Set oShell = CreateObject("WScript.Shell")
Call oShell.Run("\\kkk\help\partners.hlp",  1 , False)
End Function

Public Sub ChangeHelpLocation()
Dim frm
For Each frm In CurrentProject.AllForms
DoCmd.OpenForm frm.Name, acDesign
Forms(frm.Name).HelpFile = "\\kkk\help\partners.hlp"
DoCmd.Close acForm, frm.Name, acSaveYes

'Frm.HelpFile = "\\kkk\help\partners.hlp"

Next frm
End Sub

Public Function Getsysprjcode()
Getsysprjcode = GetSetting(Left(CurrentProject.Name, Len(CurrentProject.Name) -  4 ), "Public", "Getsysprjcode")
End Function

Public Function SETsysprjcode(prj As String)
Call SaveSetting(Left(CurrentProject.Name, Len(CurrentProject.Name) -  4 ), "Public", "Getsysprjcode", prj)
End Function
Далее на Unload формы вешаем
Код: plaintext
1.
2.
3.
Private Sub Form_Unload(Cancel As Integer)
Application.CurrentProject.CloseConnection
End Sub

А вот и примитивные ХП для Load-а
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Create  PROCEDURE dbo.look_PASS
@Passform_nam nvarchar( 100 ) output
as 
SET nocount on
select dbo.permissions.pass from dbo.permissions
where dbo.permissions.name=@Passform_nam

ALTER  procedure MySP (@PName as varchar( 100 ))
AS

SET NOCOUNT ON

IF exists (SELECT ADV_REP_Admin FROM Permissions WHERE Name=@PName)
SELECT Cast( 1  AS bit) AS RetCode

ELSE
SELECT Cast( 0  As bit) AS RetCode

Остаётся для себя подработать напильником
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32759944
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри вот это Есть ввода пароля -это есть форма для ввода пароля
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32760550
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мне мешает незная SQL пароля после открытия проекта залезть в меню Файл/Подключение и поменять там галочку на NT идентификацию? И никаких паролей ничего более не понадобится?
Это был вопрос нормер раз.

Второй вопрос, если я дал юзерам все галки на все таблицы, как сделать так чтобы в окне БД этих таблиц юзер не видел, т.е. не дать юзеру ковыряться непосредственно в таблицах из проекта?
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32760612
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА что мне мешает незная SQL пароля после открытия проекта залезть в меню Файл/Подключение и поменять там галочку на NT идентификацию? И никаких паролей ничего более не понадобится?
Это был вопрос нормер раз.

если на сервере стоит что конкретный юзер не имеет прав к серверу или базе
то ничего страшного не случится

авторВторой вопрос, если я дал юзерам все галки на все таблицы, как сделать так чтобы в окне БД этих таблиц юзер не видел, т.е. не дать юзеру ковыряться непосредственно в таблицах из проекта?

1 не надо давать ВСЕМ юзерам ВСЕ права на ВСЕ таблицы
надо разрешать только то что нужно. можно делать вертикальную или горизонтальную фильтрацию таблиц с помощью представлений и давать права только к ним

2 скрыть окно базы данных можно, можно даже заблокировать попытки отображения этого окна - об этом am.rusimport.ru
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32760644
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как же я права юзерам не дам на все?
В формах есть кнопочки для удаления записей, удаление по любому происходит от имени юзера, значит и права на удаления понадобятся.
Буду копать в направлении как скрыть окно базы.

авторесли на сервере стоит что конкретный юзер не имеет прав к серверу или базе
то ничего страшного не случится
Извини, но вообще ничего не понял.
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32760666
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеется ввиду что:
если конкретный юзер компьютера / домена не имеет прав к MSSQL серверу или базе
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32760687
Pantalone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где это можно глянуть не напомнишь?
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32760695
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как и все остальное связанное секьюрити сервера :

EM -> Сервер -> security -> logins
...
Рейтинг: 0 / 0
Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
    #32760696
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PantaloneА что мне мешает незная SQL пароля после открытия проекта залезть в меню Файл/Подключение и поменять там галочку на NT идентификацию? И никаких паролей ничего более не понадобится?
Это был вопрос нормер раз.

Второй вопрос, если я дал юзерам все галки на все таблицы, как сделать так чтобы в окне БД этих таблиц юзер не видел, т.е. не дать юзеру ковыряться непосредственно в таблицах из проекта?

Никто не мешает вашему юзеру открыть таблички другой программой.
защита от прямого обращения к таблицам серьёзно осложняет логику приложения (как клиентской, так и серверной части). Сначала определитесь, стоит ли овчинка выделки.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Перевод приложения с VB клиента на ADP, как быть с SQL логинами?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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