VBA 프로젝트는 가 보호 충분하지 않습니다 : - 2 시간 무료 시간과 인터넷을 가진 사람은 아마 통해 갈 수 있습니다.
다른 권한을 가진 DB 수준에서 다른 사용자를 만드는 것이 기본 시나리오입니다. 그런 다음 Excel 스프레드 시트의 사용자에게 셀 및 사용자 양식 중 하나에 암호와 사용자 이름을 제공하도록 요청하십시오. 암호와 사용자 이름을 가져와 연결 문자열에 사용하십시오.
보안에 대한 추가 단계로서, 작은 012 속임수를 사용하여 salting
이라고 할 수 있습니다. 예 : 주어진 사용자의 비밀번호가 vityata
이라고 가정 해 보겠습니다. 그런 다음 사용자에게 입력하도록 요청하십시오. 들어가면 암호를 가지고 다른 암호로 변경하십시오. 이 다른 것은 데이터베이스에 대한 암호 여야합니다.
Public Function str_generator(ByVal str_value As String, ByVal b_fix As Boolean) As String
Dim l_counter As Long
Dim l_number As Long
Dim str_char As String
On Error GoTo str_generator_Error
If b_fix Then
str_value = Left(str_value, Len(str_value) - 1)
str_value = Right(str_value, Len(str_value) - 1)
End If
For l_counter = 1 To Len(str_value)
str_char = Mid(str_value, l_counter, 1)
If b_is_odd(l_counter) Then
l_number = Asc(str_char) + IIf(b_fix, -2, 2)
Else
l_number = Asc(str_char) + IIf(b_fix, -3, 3)
End If
str_generator = str_generator + Chr(l_number)
Next l_counter
If Not b_fix Then
str_generator = Chr(l_number) & str_generator & Chr(l_number)
End If
On Error GoTo 0
Exit Function
str_generator_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure str_generator of Function Modul1"
End Function
Private Function b_is_odd(l_number As Long) As Boolean
b_is_odd = l_number Mod 2
End Function
이의 사용자 암호가 vityata
이라고 가정 해 봅시다 :이 같은 것을 의미한다. 그런 다음 사용자가 데이터베이스를 입력하면 데이터베이스의 실제 암호 인 cxlv|cwcc
으로 변경됩니다.
?str_generator("vityata",false)
cxlv|cwcc
?str_generator("cxlv|cwcc",true)
vityata
마지막으로 - https://github.com/Vitosh/VBA_personal/blob/6750f76e85540829056e7889c489a65daf85c696/cls_Connection.vb - 내 클래스 연결이처럼 보이는 방법이있다. 당신이 개선을위한 아이디어가 있다면, 나는 끌어 오기 요청을 보게 될 것이 기쁘다.
DBA에게 사용자가 볼 수있는 데이터에 대한 액세스 만 제공하는 로그인에 대해 생각해 보셨습니까? DB 및 해당보기의 데이터에만 액세스 할 수있는 계정의보기가 있습니다. –
SQL Server의 시스템/사용자 ID를 기반으로 보안을 제한 할 수 있습니까? –
@RobinMackenzie 내가 사용하고있는 계정은 이미 읽기 전용이지만 누구도 로그인 세부 정보를 볼 수 없도록하고 싶습니다. –