안녕하십니까?
저는 학교에서 Webserver를 관리하고 있습니다.
사용하는 시스템은 RedHat Linux 6.1이고 PHP, MySQL, Apache가 연동이 되어있습니다.
전체 사용자는 약 10000명 정도입니다. 각자의 개인 홈페이지를 작성하고 프로그래밍 실습도 하고 있습니다.
이번에 학생들의 DB실습을 지원하기 위해 MySQL을 설치를 했습니다.
관리자인 저는 개인적으로 mSQL을 사용하고 있습니다. 혼자서 사용할때는 문제가 없었는데
여러 사용자를 지원하려고 하니 mSQL은 문제점이 많이 있어서 MySQL을 같이 설치했습니다.
MySQL의 메뉴얼을 읽어 보았지만 해결책이 없어서 문의를 드립니다.
일반적으로 Unix시스템에서 계정을 만들고 사용자에게 id와 password를 알려주면
그 다음에는 크게 신경쓸 일이 없습니다. 간혹 password를 잊어먹었다고 고쳐달라는
사람들은 있지만...
그런데 Database의 사용에 관해서는 상당히 까다로운 문제가 생길 것 같습니다.
제가 처음 MySQL에 대한 정보를 접했을때는 MySQL에는 mSQL과는 달리 사용자에 대한 권한과
인증을 해준다는 정보를 접하고 Unix의 사용자 관리와 마찮가지겠지 하고 생각했습니다.
그런데 설치를 하고나서 보니 모든 사용자의 관리를 관리자가 해주어야 한다는 느낌이 듭니다.
MySQL을 설치하면 처음 생기는 mysql과 test라는 db를 분석해 보았지만 쉽게 사용하기는
힘든다는 생각이 듭니다.
제가 희망하는 방식은
1. Unix의 계정이름과 같은 db와 user를 Unix의 /etc/passwd 파일에서 script를 이용하여 sql로 변환하여
일괄적으로 만들고 초기 password는 주민등록 번호로 해주려고 합니다. --- 이 문제는 쉽게 해결할 수
있었습니다.
2. 사용자가 스스로 자신의 password를 변경할 수 있었으면 합니다. 그런데 지금까지 읽어본 자료를 보면
사용자의 권한의 변경에 관한 내용은 모두 mysql이라는 db에 있고 이 db의 내용을 바꾸는 권한은 root
사용자만 할 수 있도록 해 놓은 것 같이 보입니다. 그렇다면 사용자가 자신의 password를 변경할 수 없다는
말인지요...
3. 신규로 계정을 발급 받은 사용자가 스스로 자신의 id와 같은 db를 생성 할수 있도록 할수는 없는 지요?
4. mysql_installdb를 실행하면 mysql과 test라는 db가 만들어 지는데 mysql db의 db table을
보면 test\%라는 db가 생기는데 test db와는 어떻게 다른 지요?
결론적인 질문은 대규모 사용자에게 database 사용을 지원하려면 어떻게 하면 좋을까요?
특히 password의 관리는 어떻게 해야 될까요?
혹시 Oracle이나 Informix와 같은 사용 database에서는 이러한 문제를 어떻게 해결하는지
궁금합니다. 또한 각 그룹에 대한 관리자를 따로 둘수 있는지도 궁금합니다.
간단한 질문을 너무 어렵고 장황하게 떠들어서 죄송합니다.
자세한 설명을 바랍니다. 특히 MySQL에서 mysql이란는 db의 성격을 자세히 알고 싶습니다.
감사합니다.
|