"올바른"방법으로 DataSnap 응용 프로그램의 서버에서 내 데이터베이스에 대한 연결을 설정하려고합니다.DataSnap 및 데이터베이스 연결/로그인
데이터베이스의 각 테이블 (대부분)에는 updated 및 Created (레코드가 기록 될 때의 현재 타임 스탬프)라는 updated (필드) 값 (삽입 및 업데이트시 트리거를 통해 값이 설정 됨)이 있고 updated_by 및 created_by 현재 로그인 한 사용자를 포함해야합니다.
나는 사용자가 로그인 한 사용자를 반영하도록 클라이언트 측에서 '로그인'을 원한다. (확장하면 서버뿐만 아니라 데이터베이스에서도 사용자 인증을 얻을 수있다.) 서버에서 OnUserAuthenticate 및 OnUserAuthorize 이벤트를 처리하는 클라이언트로부터 서버 자체에 대한 인증을 처리 할 수 있습니다. 그런 다음 트리거가 위에서 언급 한 필드를 올바르게 설정할 수 있도록 자격 증명을 데이터베이스에 전달하려고합니다.
그래서이 시나리오에 접근하는 방법은 무엇입니까? DSAuthProxyUser 및 DSAuthProxyPassword 클라이언트에서 사용할 수 있지만 내가 어떻게 사용하는 많은 (모든) 설명서를 찾을 수없는 경우 궁금합니다. 연결하는 모든 사용자에 대해 새로운 연결을 설정합니까? 이것은 나에게 가장 논리적 인 것 같습니다. 동시 사용자가 많지는 않습니다. 정상 30. 가장 가능성이 높은 5-10. 그러나 이것이 "정상적인"방법으로 무엇입니까? 나는 테이블에 값을 설정하기 위해 내 삽입/업데이트 각각에 사용자 이름을 전달하고 싶지 않습니다 (희망하지 않습니다).
나는 분명히 나의 상황을 설명하기를 희망한다.
감사
'dummy_result = RDB $ SET_CONTEXT ('USER_SESSION', 'actualuser', '<사용자 이름')'이라고 쓸 수있을 것 같습니까? – mjn
PSQL에서는 문서에 따라 변수에 지정하지 않고도 할 수 있습니다. "UDF와 비슷한 특성으로 인해 RDB $ SET_CONTEXT는 PSQL에서만 - void 함수처럼 호출 될 수 있습니다." 그러나 SQL에서 실행하면'RDB $ DATABASE'에 대한 질의로서 그것을 실행해야합니다. –
완벽. 감사! 나는 내가 필요한 것을 위해이 일을 할 수있다. – Jason