를 사용하여 MySQL의에서 다중 테넌트를 얻을 수 있습니다.어떻게 내가 MySQL의 자바 봄 모범 사례와 다중 테넌트를 달성하고 목적을보고하기위한 다중 테넌트 쓰기 및 읽기를위한 MySQL을 대신에 다른 데이터베이스를 사용하는 것이 좋습니다 어떻게 자바 봄
1
A
답변
0
- 각 테너에게 고유 한 MySQL 사용자 이름과 암호를 제공하십시오.
- 그런 다음 각 세입자에게 자체 데이터베이스를 하나 이상 제공하십시오.
- 그런 다음 각 테넌트의 사용자 이름 액세스 권한을 자신이 소유 한 데이터베이스에만 부여하십시오.
이러한 다중 점유 방식은 호스팅 제공 업체의 수백만 건의 WordPress 설치에서 사용되므로 현장 테스트를 거쳐 입증 된 것입니다.
사용자를 만들려면 다음과 같이하십시오.
CREATE USER 'userid'@'localhost' IDENTIFIED BY 'password';
CREATE USER 'userid'@'%' IDENTIFIED BY 'password';
다음이 데이터베이스를 사용자와 동일한 이름을 제공합니다 (데이터베이스를 만들어 사용자의 컴퓨터 주소 부여,. 그 여러 임차에 대한 편리 할 수 있습니다
CREATE DATABASE userid;
가 그런 다음에 사용자 권한을 부여 데이터베이스 전용.
GRANT ALL PRIVILEGES ON userid.* TO 'userid'@'localhost';
GRANT ALL PRIVILEGES ON userid.* TO 'userid'@'%';
그런 다음 그들이 할 권한을 플러시 '가라.'
FLUSH PRIVILEGES;
모든 데이터베이스에 대한 읽기 전용 액세스 권한을 가진 글로벌보고 사용자를 원하는 경우이를 다음과 같이 설정할 수 있습니다.
GRANT SELECT ON *.* TO 'globalreportid'@'localhost';
GRANT SELECT ON *.* TO 'globalreportid'@'%';
GRANT SHOW DATABASES TO 'globalreportid'@'localhost';
GRANT SHOW DATABASES TO 'globalreportid'@'%';
주의 각 행에 대해 관련 세입자를 식별하는 하나의 데이터베이스를 사용하고, 다양한 테이블의 열이있는 멀티 테넌트 응용 프로그램을 디자인 할 수 있습니다. 그것이 대부분의 다중 사용자 웹 응용 프로그램이 작동하는 방식입니다. 다양한 세입자가 서로의 데이터를 보지 말아야한다는 규칙을 적용하는 것은 그 경우 귀하의 신청서에 달려 있습니다. 그러나 데이터베이스 수준에서는 다중 소유가 아닙니다. 당신이 당신의 시스템을 사용하는 다스 이상의 세입자 정도를 기대하는 경우 멀티 테넌트 응용 프로그램의 각 세입자를위한 별도의 데이터베이스를 생성
는일반적으로 좋은 생각이 아니다.
데이터베이스 보안은 복잡한 주제입니다. 여기서 MySQL 보안에 관해 읽을 수 있습니다. https://dev.mysql.com/doc/refman/5.7/en/security.html
는하지만 내가 어떻게 tanant ID에 또한 내가 어떻게 모든 세입자의 데이터를 볼 수 있습니다 슈퍼 사용자에게보고를 달성 할 수에 따라 데이터를 저장하는 자바 스프링을 사용하여 런타임에 세입자를 전환 할 수 있습니다. –
질문을 명확하게하려면 의견을 사용하지 말고 질문을 편집하십시오. –