database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29267 게시물 읽기
No. 29267
mysql 관련 질문입니다.
작성자
박혜성
작성일
2009-09-04 10:18ⓒ
2009-09-04 10:22ⓜ
조회수
6,050

안녕하세요 :-)


질문 하나 드릴께요,,


제가 python 으로 웹포탈을 하나 진행하고 있는데요,

두개의 독립된 프로젝트로 구성이 되어 있고, 각각 각자 session을 관리하는 테이블을 가지고 있습니다.

즉, 두개의 프로젝트는 독립된 회원인증시스템을 가지고 있는 셈이죠,,

(같은 mysql상에서 다른 database를 사용하고 있습니다.


이런 환경에서 독립된 인증 시스템을 하나로 통합해야 합니다.

(한쪽에서 로그인해면 다른 한쪽도 로그인이 되게요,,)


고민해보니, session테이블을 통합해서 같이 쓰면 될꺼같은데요,

로직으론 한 테이블을 같이 쓰도록 변경할 수가 없습니다.


그래서 질문드립니다.

mysql측에서 두 테이블을 연결시켜서, 어느쪽으로 쿼리문이 요청되어도 두 테이블다 검색할 수 있도록 설정 가능한가요??

이 글에 대한 댓글이 총 3건 있습니다.

저도 오픈소스 프로젝트들의 One-sign login을 지원하는 일을 몇 번 해보았는데, 100% 만족하기는 어렵더군요. 기존 소스를 수정하자니, 차후 업데이트를 받기가 어렵기도 하구요.

원하시는 답변은 아니지만, 저는 mysql 측에서 테이블을 연결하거나 하는 작업은 하지 않고, 각자의 로그인/세션 방식을 유지하면서, 패스워드 변경시, 다른 시스템들의 패스워드를 같이 변경하는 식으로 처리하였습니다. 

이를테면, 통합 로그인을 위한 자체 로그인 DB가 있는데, 이 값을 바꿀때, 다른 어플리케이션에서 사용하는 DB 값도 같이 바꿔주는 방식으로 말이죠. 

로그인할 때도, 다른 어플리케이션의 로그인을 별도로 같이 불러줘서, 서로 다른 세션을 쓰지만, 마치 one-sign login 처럼 보이도록 처리하기도 했습니다. 

이런 식으로 roundcubemail, mantis, dotproject 등을 하나로 합쳐서 쓴 적이 있습니다.

박현우(lqez)님이 2009-09-07 10:18에 작성한 댓글입니다.
이 댓글은 2009-09-07 10:18에 마지막으로 수정되었습니다.

안녕하세요 박성원입니다. 

다들 주말은 잘 보내셨나요? 현우님이 답변을 써주셨는데요 


제 개인적인 생각은
우선 말씀하신 세션이라는게 PHP나 ASP에서 말하는 유저 접속 정보의 세션을 말씀하시는지 
유저의 접속하는 정보 즉, 회원테이블을 말씀하시는지 몰라 제가 편한대로 유저테이블로 생각해보겠습니다. (*사실 세션테이블은 거의 제소관이 아니라 처리방식이 가물가물하네요 ㅋㅋ) 


사용중인 Mysql 의 버전이 어떤것인지 모르겟으나 상위 버전이시라면 트리거를 사용해서 테이블에서 발생하는 update의 event에 대한 감지가 가능합니다. 즉, 하나의 로그인 event나 삭제 event가 발생했을경우 다른 한쪽도 동일하게 처리해주는 방식으로 가시면되겠지요. 이방식은 많은 수의 유저를 확보하고 있을경우 비추입니다. 아무래도 부하가 발생하긋죠 ㅋ

그럼 다른 방법으로는 간단히 VIEW를 이용한 방법이 있습니다. 즉, 두테이블을 모두 포함하는 VIEW를 만드시고 이에 따라서 이를 근거로 데이터베이스를 컨트롤 하는 방식이죠. 하지만 이는 삭제나 update등에 까다로운 처리가 들어가야되니 이 점 유의하시면서 작업하셔야할 듯 합니다.


좋은 하루 되세요

박성원(darkancia)님이 2009-09-07 12:04에 작성한 댓글입니다.

아 답변 감사합니다. :-)


제가 찾던 방법이 trigger 방식인거 같네요,,


많은 수의 유저 일 경우 부하가 많이 걸릴것인데

어느 정도 유저까지 가능할까요,,

저희 시스템에 등록된 사용자는 500명 정도 되는데요,,


이정도면 trigger방식보다는 view 방식이 더 좋을가요??


아무튼 로직 소스(DB외 로직 소스) 수정은 없는 방향으로 가야합니다.

아 그리고, trigger방식 서로 다른 DB를 사용하는 테이블 간(한 mysql 시스템 상에서)에도 사용 가능한거지요??



도움 감사해요 :-)

박혜성님이 2009-09-08 18:33에 작성한 댓글입니다.
이 댓글은 2009-09-08 18:36에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
29282Foreign key update cascade의 모호성? [1]
강동화
2009-09-08
6159
29281데이터 삭제시 인덱스도 같이 삭제 되나요? [2]
김대청
2009-09-07
5736
29268Database 용량 체크 방법 [1]
김지숙
2009-09-04
8034
29267mysql 관련 질문입니다. [3]
박혜성
2009-09-04
6050
29254mysql 에러 [2]
이성식
2009-09-03
6211
29253MYSQL 실행/ 테이블생성시 생성DB 파일 실행권한문제 [1]
쭈니소리
2009-09-03
7219
29252가장최근의 데이터 3개를 추출하여 그중 con이란 컬럼값이 비어있는 갯수를 구하려구합니다. [5]
BigBug
2009-09-03
6738
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다