2013-06-21 1 views
3

SQL Server 로그인 (AD 아님)을 사용하여 데이터베이스를 인증하는 응용 프로그램이 있습니다. 이 계정은 단일 일반 계정이므로 100 명의 사용자가 로그온하면 사용자가 만든 모든 연결에 동일한 사용자 이름이 연결됩니다.SQL Server 연결에 사용자 ID 첨부

이렇게하면 서버에서 부적절하거나 잘못된 동작 (사용자를 확인할 수 없음)을 모니터링하는 데 사용하려는 일부 감사 도구에 대한 문제점이 있습니다.

이 연결을 관리하는 더 좋은 방법이 있습니까? 다음은 목표입니다.

사용자가 아닌 SQL 서버에 액세스하도록 응용 프로그램에 권한을 부여하고자합니다 (사용자가 Access 또는 Crystal Reports를 실행하고 db 액세스는 Google 코드를 통해 이루어져야합니다.) 이러한 이유로 통합 보안 사용을 피했습니다.

우리는 다시 우리는 ORM의 (강력하게 '우리가 할 수있는 저장 발동 이상의 매개 변수가있는 SQL을 선호하는, 그래서 작업을 할 수 있어야 그것을

를 시작한 사용자에게 SQL Server에서 활성 프로세스의 상관 관계를 할 수있게하려면 t은

) AD 계정에 대해 내가 아는 그 날 잎 유일한 옵션 만 실행 권한을 지정할 수 있습니다

  • 가 연결에 사용자 별 메타 데이터의 일종을 첨부
  • 내가 모르는 제 4 옵션은 거기에 우리의 연결

에 사용자의 ID 정보를 지내다 사용자

  • 당 SQL Server 로그인을 사용하여?

  • +1

    연결 문자열의 '응용 프로그램'부분에 사용자 이름을 입력하십시오. 그러나 연결 풀링의 이점을 잃어 버리고 응용 프로그램을 신뢰해야합니다 (context_info와 같은 다른 방법에서도 마찬가지) –

    +0

    또는 SQL Server 연결에서 IP 주소를 가져 와서 원본/사용자 (귀하의 상황에 따라 실제 또는 그렇지 않을 수도 있음) – RBarryYoung

    답변

    1

    일반적인 접근법은 작성된 모든 레코드에 사용자 이름을 첨부하는 것입니다. FK 감사/기록 테이블을 사용하거나 테이블의 열을 사용합니다. 귀하의 응용 프로그램은 데이터베이스와 어떤 대화를 나누고 있습니까? 귀하의 사용자는 내가 알고있는 "통과"가 없습니다.

    또 다른 옵션은 응용 프로그램을 사용할 때 사용자의 사용자 이름을 가져 와서 사용자의 세션에 connectionString을/사용자의 사용자 이름과 통합 된 자격 증명을 사용하는 모든 것 ... 사용자가 고유하게 저장 한 connectionString 응용 프로그램을 사용하는 동안. 그게 작동해야하지만, 당신은 SQLExceptions 코드에서 권한 등을 처리해야 할 것입니다 ... 나는 당신이 상관없이 처리해야한다고 생각합니다.

    관련 문제